C++ 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版权协议,转载请附上原文出处链接和本声明。