簡體   English   中英

如何將變量分配給字符串數組的元素

[英]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::vectorstd::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::stringprintf ,因為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM