关于C++里string类的输出问题
我今天在准备9月的CSP认证时碰见了一个问题:使用下面的代码输出字符串,然而发现变成了乱码。
printf("%s", H);
我以为是字符串的输入出了问题,但我尝试把字符串的每个字符的ASCII码打出后却发现是正确的,而且用std::cout可以正确输出。那一定就是输出环节出问题了。
我上网找了一下,终于发现了问题:string对象不止包含字符串,还包含其它操作函数,其首地址并非字符串的首地址,用%s就不能正确输出。将代码改成下面这个之后就能顺利输出了。
printf("%s", H.c_str());
浙公网安备 33010602011771号