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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。