关于string的一些函数学习,先收藏起来,忘记了可以看
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1 = "12345";
string str2 = "a";
str2 += "bcde";
str1.assign(str2,0,3); //把str2中下标为0开始,的三个字符赋给str1;
cout<<str1<<endl;
//输出 abc
cout<<strlen(str1.c_str())<<endl; //c_str()是讲string转换为char型
cout<<str2.size()<<endl;
cout<<str2.length()<<endl;
//string 型合并
string str3 = "12345";
string str4 = "abcde";
str3.append(str4,0,3); //把str2从下标为0开始的3个字符接到str1后面
cout<<str3<<endl;
//输出 12345abc
string str5 = "12345";
string str6 = "abcde";
str5.replace(0,1,str6,3,2);
//0,1 表示替换掉从str5的下标为0开始一个字符;3,2表示用str6的下标为3开始的两个字符来替换;
cout<<str5<<endl;
//输出 de2345
string str7 = "12345";
string str8 = "abcde";
str7.insert(2,str8,1,3);
cout<<str7<<endl;
//输出12bcd345
string str9("12345678");
cout<<str9<<endl;
str9.erase(2,2);
cout<<str9<<endl;
str9.erase(2);
cout<<str9<<endl;
str9.erase();
cout<<str9<<endl;
string str10("1234567890");
int i = str10.find('5');
if( i != string::npos) cout<<i<<endl;
else cout<<"no find"<<endl;
i = str10.find_first_not_of('5',0);
if( i != string::npos) cout<<i<<endl;
else cout<<"no find"<<endl;
string str11("123"),str12("55");
i = str11.compare(str12);
cout<<i<<endl;
return 0;
}
/*
string函数
str.size();
str.length();
str.empty();//判断字符串是否为空
str1.swap(str2);//把str1和str2两个字符串交换
str.erase(start,count);str.erase(start);str.erase();
str1.assign(str2 , start , count);把str2中下标为start开始的count个字符赋给str1
str1.append(str2 , start , count);把str2从下标为start开始的count个字符接到str1后
str1.replace(str1_start , str1_count , str2 , str2_start , str2_count);
//用str2的下标为str2_start开始的str2_count个字符来替换从str1的下标为str1_start开始str1_count个字符
str1.insert(str1_start , str2 , str2_start , count);把str2中从str2_start开始的count个插入到str1的位置
int str.find(char c,int start);//从str的下标为0开始查找c,若没找到返回string::npos,找到返回下标值
int str.rfind(char c,int start);//从str的下标为0开始逆向查找c,若没找到返回string::npos,找到返回下标值
int str.find_first_not_of(char c,int start);//从str的下标为0开始查找第一个与c不同的字符,若没找到返回string::npos,找到返回下标值
int str.find_first_of(char c,int start);//从str的下标为0开始查找第一个与c相同的字符,若没找到返回string::npos,找到返回下标值
int str1.compare(str2);
int str1.compare(start,count,str2);
int str1.compare(str1_start,count,str2,str2_start,count);
*/
#include <iostream>
#include <string>
using namespace std;
int main()
{
//char 型合并
char c_1[20]= "12345";
char c_2[10]= "abcde";
strncat(c_1,c_2,3);
cout<<c_1<<endl;
//输出 12345abc
char c_3[20]= "12345";
char c_4[10]= "abcde";
strncpy(c_3,c_4,3);
cout<<c_3<<endl;
//输出 abc45
char c_5[15] = "1234567890";
char *p,c = '5';
p = strchr(c_5,c);
if(p) cout<<p-c_5<<endl;
else cout<<"no find"<<endl;
return 0;
}
/*
char函数
strchr(*str,c);//在str中查找字符c并且返回下标
strcat(*str1 , *str2);
strncat(*str1 , *str2 , count);
strcpy(*str1 , *str2);
strncpy(*str1 , *str2 , count);
strcmp(*str1 , *str2);
memmove(*str1 , *str2 , count);
*/