1.size()和length()用法说明
作用:计算c++字符串长度
例1:
#include<iostream>
#include<string>
using namespace std;
int main() {
string str1="wo shi shuai ge";
cout<<"str1.size()计算的字符串长度为:"<<str1.size()<<endl;
cout<<"str1.length()计算的字符串长度为:"<<str1.length()<<endl;
return 0;
}
输出:
例2:
#include<iostream>
#include<string>
using namespace std;
int main() {
string str1="我 shi shuai ge";
cout<<"str1.size()计算的字符串长度为:"<<str1.size()<<endl;
cout<<"str1.length()计算的字符串长度为:"<<str1.length()<<endl;
return 0;
}
输出:
解释:这两个函数作用一样。 length()是因为沿用C语言的习惯而保留下来的,string类最初只有length(),引入STL之后,为了兼容又加入了size(),它是作为STL容器的属性存在的,便于符合STL的接口规则,以便用于STL的算法。 string类的size()和length()方法返回的是字节数,不管是否有汉字。在c++中,一个字母占一个一个字节,一个空格占一个字节,汉字的存储与操作系统环境有很大关系。如果操作系统字符集是gbk,则一个汉字由两个字节组成。如果操作系统字符集是utf8,则一个汉字由三个字节组成。上面两个例子的输出就好理解了。
2. 拼接字符串的用法(string类, strcat(), strcpy(), strlen()的使用)
string类:两个string对象相加得到一个新的string对象,其内容是左侧的运算对象与右侧的运算对象串接而成。
strcpy(a,b):将字符串b复制到字符串a中。
strcat(a,b):将字符b附加到字符串b的末尾。
strlen():返回字符串包含的字符数,不包括空字符('\n')。
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main() {
//方法一 string定义的字符串直接相加
string str1="我是";
string str2="帅哥";
string str3=str1+str2;
cout<<"str3="<<str3<<endl;
cout<<"str3.size:"<<str3.size()<<endl;
//方法二 用strcat()
char char1[]="我是";
char char2[]="帅哥";
char char3[20];
strcpy(char3,char1);
strcat(char3,char2);
cout<<"char3="<<char3<<endl;
cout<<"strlen:"<<strlen(char3)<<endl;
return 0;
}
输出: