首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-16 
c++的2个字符串问题#include iostreamusing namespace stdint main(){char *num HellointnLength

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。

热点排行