美文网首页
string类型数据求长度(C++版)

string类型数据求长度(C++版)

作者: Lacie_喵 | 来源:发表于2019-01-28 23:56 被阅读0次

问题

#include <iostream>
#include <cstring>
using namespace std;
string str;
int main(){
  cin>>str;
  cout<<strlen(str);
  return 0;
}
error.png

分析

string 是C++里的字符串类型
strlen 是对C风格字符串来使用的,也就是说 char [] 和string完全是不同类型的
strlen根本不认识 string 是什么,所以报错

解决方案

用string的成员方法length()获取字符串长度

length()比较直观,表示的就是该字符串的长度。

#include <iostream>
#include <cstring>
using namespace std;
int main(){
  string str;
  cin>>str;
  cout<<str.length();
  return 0;
}

用string的成员方法size()获取字符串长度

size()表示的是string这个容器中的元素个数。如果使用过std::vector之类的容器的话,可以把string看做是一个vector<char> (这里只是举例,并不能等价), char就是这个容器的元素类型。那么size()表示的就是这个vector(容器)中char的个数。

#include <iostream>
#include <cstring>
using namespace std;
int main(){
  string str;
  cin>>str;
  cout<<str.size();
  return 0;
}

用strlen获取字符串长度

strlen也可以用来获取字符串长度,但是需要先用c_str()先将C++ string 类型转换成char*类型。

#include <iostream>
#include <cstring>
using namespace std;
int main(){
  string str;
  cin>>str;
  cout<<strlen(str.c_str();
  return 0;
}

参考资料https://blog.csdn.net/fanyun_01/article/details/79122843

相关文章

网友评论

      本文标题:string类型数据求长度(C++版)

      本文链接:https://www.haomeiwen.com/subject/diqtsqtx.html