[英]how to assign variable to element of string array
可能是我遇到了一個問題,我試圖知道我的代碼如何像這樣運行...我有什么麻煩,請幫助我,這是我的代碼:
string arr[3][4];
arr[1][0] = "34234";
printf("%s",arr[1][0]);
但是我的輸出是%#$(類似這樣)。 請幫助我,非常感謝。
這是因為printf
函數對C ++ std::string
類一無所知。 之所以在這里是因為它是C標准庫的一部分。
要獲得可以在例如printf
使用的C風格的字符串,必須使用c_str
方法:
printf("%s", arr[1][0].c_str());
但是,您真正應該做的是學習如何使用本機C ++流輸出:
std::cout << arr[1][0];
PS。 代替舊的C樣式數組,您還應該研究C ++ 標准容器 ,例如std::vector
和std::array
。
printf
是一個C函數,對諸如std::string
類的類型一無所知。 您可以使用<iostream>
標頭中的類型safe std::cout
:
std::cout << arr[1][0];
或者,如果您確實需要調用printf
(並放棄類型安全性),請調用std::string::c_str()
,該方法將const char*
返回到std::string
保存的以空const char*
結尾的std::string
。 printf
將理解這一點。
printf("%s",arr[1][0].c_str());
使用std::cout
代替帶有std::string
的printf
,因為C函數printf
沒有std::string
視圖。
#include <iostream>
std::cout << arr[1][0];
為了使您的代碼正常工作,您需要通過調用std :: string :: c_str函數來獲取C char數組。
printf("%s",arr[1][0].c_str());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.