string字符串若干操作

来源:互联网 发布:淘宝宝贝图片下载 编辑:程序博客网 时间:2024/06/01 08:18

删除字符串中子串

string s1="asdfgh";s1 =s1.erase(2,3);//则s1的字符串变为"ash"

删除s1中从第2个字符开始的3个字符并再次赋值给s1

字符串中插入字符串

string str1="We can insert a string";   string str2="a str into ";//在字符串指定位置前面插入指定字符串cout <<str1.insert(14,str2)<<endl;    /*A*///在字符串指定位置前面插入指定字符串的子串(从指定索引开始的指定个数的字符)cout <<str1.insert(14,str2,2,9)<<endl;   /*B*///插入指定字符串的前n个字符    cout <<str1.insert(14,"test hello",5)<<endl;     /*C*///插入n个相同字符到字符串中  cout <<str1.insert(14,6,'*')<<endl;    /*D*/

A::::将str2插入到str1下标为14位置处
B::::将str2的下标2开始的9个字符插入到str1的下标为14的位置处
C::::将“test hello”的前5个字符插入到str1的下标为14的位置处
D::::将6个‘*’字符插入到str1的下标为14的位置处

上述的操作结果如下::::
这里写图片描述

替换字符串中子串

string ori = "his name is Tom";string fnd = "Tom";string rep = "Jack";ori = ori.replace(ori.find(fnd), fnd.length(), rep);cout<<ori<<endl;

用ori对象自带的find函数找到fnd这个子字符串,再用ori对象的自带的replace函数来替换,结果如下::
这里写图片描述

将string字符串转换成char *字符串

如果要将string转换为char*,可以使用string提供的函数c_str() ,或是函数data(),data除了返回字符串内容外,不附加结束符’\0’,而c_str()返回一个以‘\0’结尾的字符数组。

/*错误做法:::::*/char *C;string S="123456";C = S.c_str();/*正确做法:::::*/char C[20];string S="123456";strcpy(C,S.c_str());

c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同.c_str()返回的是一个临时指针,在S对象被析构后,C会成为一个野指针,C指向的内容也会被改变。

从文件中逐行读取string字符串

ifstream fin("data.txt");  string  s;  while(getline(fin,s)){        cout <<  "Read from file: "  << s << endl; }

getline读取文件方式: 逐行读取, 将行读入字符串, 行之间用回车换行区分。

我把data.txt中写入一些字符串,如下:::
这里写图片描述

上述代码的执行结果::::
这里写图片描述

0 0
原创粉丝点击