VC关于GetLength函数

2025-01-05 23:29:36
推荐回答(3个)
回答1:

GetLength()是通过判断末尾的\0来获取长度的
CString str=_T("abcd");定义里面末尾自动加\0
而char c[4]={'a','b','c','d'}; 末尾缺少\0
GetLength()不能得到正常值

回答2:

  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 );

回答3:

char c[4]={'a','b','c','d'};
改为:
char c[5]={'a','b','c','d','\0'};
就对了

原因:c语言中字符串以‘\0’结束