VC关于GetLength函数?

如果直接用CString定义并初始化情况下,GetLength()能得到正确的字符串长度,如:
CString str=_T("abcd");
str.GetLength()返回的值是等于4;
但是当我先用一个数组定义,然后再用这个函数的时候返回值就不正确了,如:
char c[4]={'a','b','c','d'};
CString str;
str=c;
str.GetLength()的返回值就是错误的。这个是什么原因,能不能给解释。

幕布斯7119047
浏览 1028回答 3
3回答

弑天下

  CFile::GetLength  virtual DWORD GetLength( ) const;  throw( CFileException );  Return Value  该文件的长度。  Remarks  获得当前字节文件的逻辑长度,而不是数量。  Example  The following example demonstrates the use of CString::GetLength.  // example for CString::GetLengthCString s( "abcdef" );ASSERT( s.GetLength() == 6 );CString::GetLength  int GetLength( ) const;  返回值:返回字符串中的字节计数。  说明:  此成员函数用来获取这个CString对象中的字节计数。这个计数不包括结尾的空字符。  对于多字节字符集(MBCS),GetLength按每一个8位字符计数;即,在一个多字节字符中的开始和结尾字节被算作两个字节。  示例:下面的例子说明了如何使用CString::GetLength。  // CString::GetLength示例:  CString s( "abcdef" );  ASSERT( s.GetLength() == 6 );

沧海一幻觉

char c[4]={'a','b','c','d'};改为:char c[5]={'a','b','c','d','\0'};就对了原因:c语言中字符串以‘\0’结束
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Cocos2d-x