C++中如何获得string的长度?

比如 string a = "abc"; 我用sizeof就总是返回28 ,为什么?该怎么做才能返回实际字符串的长度?

(1)a.size()(返回字符数,STL容器都有这个方法)

例如:

#include<iostream>
int main()
{
using namespac std;
string a="abc";
cout<<a.size()<<endl;
}

输出:3

 

(2)a.length()(同size(),这是早期开发string类时加入的,现在还可以用,但其他STL容器没有此方法)

 

解释一下sizeof的结果:

sizeof运算符返回对象或类型实际占有的空间,string对象包含一个指向字符串的指针,指针很小,一般与int相当;string还包含其他数据成员,因此不论它存储的字符串有多大,它的大小一般是恒定的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-30
方法是使用sizeof(array) / sizeof(array[0]),
在C语言中习惯上在 使用时都把它定义成一个宏,比如#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));} 。
第2个回答  2013-08-30
string str="welcome to chaina!";
int m;//m为长度
m=str.size();//求字符串长度或者下面的
m=str.length(); //同上面size功能一样,都是求字符串长度的本回答被网友采纳
第3个回答  2013-08-30
a.length();或者a.size();
第4个回答  2018-03-03

1)a.size()(返回字符数,STL容器都有这个方法)

例如:

#include<iostream>int main(){using namespac std;string a="abc";cout<<a.size()<<endl;}

输出:3

(2)a.length()(同size(),这是早期开发string类时加入的,现在还可以用,但其他STL容器没有此方法)

解释一下sizeof的结果:

sizeof运算符返回对象或类型实际占有的空间,string对象包含一个指向字符串的指针,指针很小,一般与int相当;string还包含其他数据成员,因此不论它存储的字符串有多大,它的大小一般是恒定的。

相似回答