string类函数大合集
函数empty() 判断字符串是否为空
使用成员函数检测string 字符串是否非空
利用函数empty()实现,如果空,返回布尔值true
否则,返回false。
格式如下
string 变量名.empty();
书写
string str;
if(str.empty()) cout<<"str为空"<<endl;
else cout<<"str不为空"<<endl;
函数find 查找字符串中的元素位置
//注意输出的都是查找的元素的位置,并且是下标,从0开始
string str = "asdfggfdas";
char ch='a';
cout<<"元素ch位于字符串str的第"<<str.find(ch)<<"位"<<endl;
//元素ch位于字符串str的第1位
/*
拓展
1.上式可以写为
cout << str.find('a') << endl;
2.
int find(char ch, int pos = 0) const
1式表示在str这个字符串里查找ch这个字符第一次出现的位置,原因是默认从第一个元素开始查
如果我们这么些
cout << str.find('a',5) << endl;
从第5个元素开始查,就会输出8.
*/
//下面的这些函数都可以用这样的功能,再次就不再赘述
cout<<str.find_first_of(ch)<<endl;
//第一个为ch的位置
cout<<str.find_first_not_of(ch)<<endl;
//向后找不是ch字符的第一个位置
cout<<str.find_last_of(ch)<<endl;
//从后向前找是ch的位置
cout<<str.find_last_not_of(ch)<<endl;
//从后向前找不是ch字符的位置
cout<<str.rfind(ch)<<endl;
//从后向前找ch的收个位置
字符串比较:
1.直接利用!=、>=、<= 、==
2.函数compare()
3.比较strcmp()
string str1 = "abcdefg";
string str2 = "abcefgd";
//1.直接利用!=、>=、<= 、==
if(str1>str2) cout << "str1大于str2" << endl;
//2.函数compare()
int t = str1.compare(str2);
cout << t << endl;
//str1大于str2返回1
//str1等于str2返回0
//str1小于str2返回-1
//
int result=strcmp(str1,str2);
cout<<result<<endl;
返回值=0 string1=string2
返回值>0 string1>string2
返回值<0 string1<string2
长度
strlen()
字符串长度length()
字符串长度size()
string str = "asdfggfdas";
char s[10] = "asdfggfdas";
cout << str.strlen() << endl;
cout << str.size() << endl;
函数getline()读取字符串,可以包含空格
//getline(cin,str,'$')
//读取字符串,直到出现字符串$
string str;
getline(cin,str,'$');//到$截至
getline(cin,str);//没有截至功能
函数strupr()将小写字符改为转换为大写
string str = "asdfggfdas";
cout<<strupr(str)<<endl;
函数strcat() 连接两个字符串
string str1 = "abcdefg";
string str2 = "abcefgd";
strcat(str1,str2);//将第二个字符串连接到第一个字符串上
cout<<str1<<endl;
函数strcpy()复制字符串
string str1 = "abcdefg";
string str2 ;
strcpy(str2,str1);//将后面的复制到前面的字符串
cout<<str2<<endl;
函数substr()复制子字符串
//使用格式:str = s.substr(pos, n)
string s = "abcdefg";
string str = s.substr(2,3);
cout << str << endl;
//输出结果为
//cde
字符串反转
**
//strrev函数(只能用于字符数组,对string类型是无效的)
//reverse函数(反转容器中的内容,对字符数组无效。)
//1.strrev函数
char str1[]="hello";
strrev(str1);
puts(str1);
//2.reverse函数
string str2= "hello";
reverse(s.begin(),s.end());
cout<<s<<endl;
版权声明:本文为qq_45914558原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。