问题
#include <iostream>
#include <cstring>
using namespace std;
string str;
int main(){
cin>>str;
cout<<strlen(str);
return 0;
}
![](https://img.haomeiwen.com/i3938217/4a3e960ae1d2cd6e.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
网友评论