C++ 如何将变量分配给字符串数组的元素

C++ 如何将变量分配给字符串数组的元素,c++,arrays,string,C++,Arrays,String,可能是我的问题出了问题,我试图知道我的代码如何能像这样运行…我的问题是什么,请帮助我 这是我的密码: string arr[3][4]; arr[1][0] = "34234"; printf("%s",arr[1][0]); 但是我的输出是%#$(类似于这样的)。请帮帮我,非常感谢 使用std::cout而不是printf和std::string,因为C函数printf没有std::string的视图 #include <iostream> std::cout <<

可能是我的问题出了问题,我试图知道我的代码如何能像这样运行…我的问题是什么,请帮助我 这是我的密码:

string arr[3][4];
arr[1][0] = "34234";
printf("%s",arr[1][0]);

但是我的输出是%#$(类似于这样的)。请帮帮我,非常感谢

使用
std::cout
而不是
printf
std::string
,因为C函数
printf
没有
std::string
的视图

#include <iostream>
std::cout << arr[1][0];

这是因为Primf> /Cuff>函数对C++ <代码> STD::String 类一无所知。它之所以存在是因为它是C标准库的一部分

要获取可在例如
printf
中使用的C样式字符串,必须使用以下方法:

<>但是你真正要做的是学习如何使用原生C++流输出:

std::cout << arr[1][0];

std::cout
printf
是一个C函数,对诸如
std::string
之类的类型一无所知。您可以从
标题使用类型安全
std::cout

std::cout << arr[1][0];

字符串
??用户定义的???,
printf(“%s”,arr[1])
您甚至没有收到警告吗?您是否在编译时未启用警告?您应该使用
std::cout打印非常感谢您,我解决了我的问题并知道它是如何发生的
std::cout << arr[1][0];
std::cout << arr[1][0];
printf("%s",arr[1][0].c_str());