#include <iostream>
using namespace std;
int main(void){
string a;
a = "123";
char *b="123";
cout<<a<<endl;
cout<<b<<endl;
//printf("%s",a);报错
printf("%s\n",a.c_str());//正确
printf("%s",b);
return 0;
}
printf输出字符串是针对char *的,换言之,printf只能输出c语言中的内置数据,string不是c语言内置数据。
string中c_str()成员方法返回当前字符串的首字符地址,可以通过此方法来进行printf输出。