69,371
社区成员
发帖
与我相关
我的任务
分享
char *p="asdfag";
string str="sdf";
str+="asdgvsd";//这个追加在编译时不会有错
cout<<str;//为什么这里会显示无匹配操作符,编译是怎么编译的
printf("%s",str);//当改为printf输出时为什么初始赋值是乱码,后面添加的字符串有错
#include <cstdio>
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
string str= "sdf";
str += "asdgvsd"; // string类型支持+=运算符重载操作
cout << str << endl; // cout会根据str的类型智能输出
printf("%s\n",str.c_str()); // printf支持的是C字符串,因此需要用c_str进行转换
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
char *p = "asdfag";
string str = "sdf";
str += "asdgvsd";
cout << str << endl;
//%s输出的是字符串,后面要有'\0',而string类型是没有'\0'的,要做一个转换
printf("%s", str.c_str());
return 0;
}
char *p="asdfag";
string str="sdf";
str += "asdgvsd";//这个追加在编译时不会有错
cout << str.c_str();//为什么这里会显示无匹配操作符,编译是怎么编译的
printf("%s",str.c_str());//当改为printf输出时为什么初始赋值是乱码,后面添加的字符串有错
str += "asdgvsd";//这个追加在编译时不会有错,是因为string类重载了操作符+=,支持char *类型
cout << str.c_str();//为什么这里会显示无匹配操作符,编译是怎么编译的 -> cout 不支持string数据类型,支持char, char*类型
printf("%s",str.c_str());//当改为printf输出时为什么初始赋值是乱码,后面添加的字符串有错 -> printf只支持char, char *类型。