C++中表示字符串长度

string的size(), length() 和 char[]的strlen()都是不包括‘\0'的,他们都是“外貌协会”的,只停留在表面。
sizeof则是从内存角度来反映,它是包括’\0‘的。注意sizeof(指针)只是表示指针所占的内存大小。
 1 #include <iostream>
 2 #include<string>
 3 #include<cstring>
 4 
 5 using namespace std;
 6 using std::string;
 7 
 8 int main()
 9 {
10     string ch = "panther";
11     int nSize = ch.size();
12     int nLength = ch.length();
13     cout << "nSize:" << nSize << endl;                //7
14     cout << "nLength:" << nLength << endl;            //7
15 
16 
17     char char1[] = "panther";
18     char *pChar = char1;
19 
20     int nStrlen = strlen(char1);
21     int nSizeofArr = sizeof(char1)/sizeof(char);//此处若char1定义时为[20],则此处nSizeof为20.
22     int nSizeofPtr = sizeof(pChar);    //这样写法则是指针所占内存
23     cout << "nStrlen:" << nStrlen << endl;            //7
24     cout << "nSizeofArr:" << nSizeofArr << endl;      //8
25     cout << "nSizeofPtr:" << nSizeofPtr << endl;      //4

 

原文链接: https://www.cnblogs.com/Stephen-Qin/p/11631738.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++中表示字符串长度

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/303805

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月16日 上午12:56
下一篇 2023年2月16日 上午12:57

相关推荐