读书人

c++的2个字符串有关问题

发布时间: 2012-02-16 21:30:36 作者: rapoo

c++的2个字符串问题
#include <iostream>
using namespace std;
int main()
{
char *num = "Hello";
int nLength = strlen(num); //nLength为6
cout<<num<<endl; //这里输出的是Hello而问题2?


wchar_t *str1=L"Hello";
cout<<wcslen(str1)<<endl;; //问题1 输出5,它不以\0结尾吗?
cout<<str1<<endl; //问题2 输出的是地址,怎么才能输出Hello
return 0;
}


[解决办法]
you got it
[解决办法]
我也很纠结,strlen不是已经不认结束符了吗。。。
[解决办法]
顶LS的,strlen第一个就应该是5
[解决办法]
应该是和cout的<<重载有关系,它可能不支持wchar_t *这样的字符串
[解决办法]
首先,nLength是5而不是6
然后,用wcout<<str1<<endl;就可以输出Hello了
[解决办法]
网上搜搜宽字符的输出,另外可以使用sprintf(str,"%s",str1)也可以,还有你的 int nLength = strlen(num); //nLength为5 而不是6.
[解决办法]
up!
[解决办法]
[apuser3@MKCBAT luxingwei]$ ./test
nLength =5//我这里输出5呀。
num=Hello
len2=5
str=0x400d70
[apuser3@MKCBAT luxingwei]$
[解决办法]
int nLength = strlen(num); //nLength为6
VS2005上输出nLength, 结果为5。

读书人网 >C++

热点推荐