关于C++里string类的输出问题

  我今天在准备9月的CSP认证时碰见了一个问题:使用下面的代码输出字符串,然而发现变成了乱码。

printf("%s", H);

  我以为是字符串的输入出了问题,但我尝试把字符串的每个字符的ASCII码打出后却发现是正确的,而且用std::cout可以正确输出。那一定就是输出环节出问题了。

  我上网找了一下,终于发现了问题:string对象不止包含字符串,还包含其它操作函数,其首地址并非字符串的首地址,用%s就不能正确输出。将代码改成下面这个之后就能顺利输出了。

printf("%s", H.c_str());

 

posted @ 2021-07-19 17:25  许崇智  阅读(535)  评论(0)    收藏  举报