字符串

Posted on 2011-07-27 14:52  continue_n  阅读(317)  评论(1)    收藏  举报

关于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);
*/

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3