c语言的char形与c++的string的部分使用的比较.pdf
《c语言的char形与c++的string的部分使用的比较.pdf》由会员分享,可在线阅读,更多相关《c语言的char形与c++的string的部分使用的比较.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、c+string函数的字符数组和字符串中华 IT 学院【大 中 小】2010年 9 月 25 日 字符串可以用字符数组与字符串变量两种方式来存储,效果类似。一、用字符数组来存储字符串:char st1100,st2100;/字符数组说明cinst1st2;long a,b;输入:hello,world 则 st1=h,e,l,l,o,0st2=w,o,r,l,d,0 字符 0为字符串结束标志1.字符数组长度 strlen(st1);/如 a=strlen(st1);b=strlen(st2);则 a=6,b=5 2.字符数组比较不能直接比较,st1st2 是错误的,要用strcmp()函数 s
2、trcmp(st1,st2);/st1=st2相等则输出 0,st1st2输出1 strncmp(st1,st2,n);把 st1,st2的前 n 个进行比较。3.连接字符数组不能直接用 st1=st1+st2;用 strcat()函数 strcat(st1,st2);/将 st1 和 st2 连接后赋给 st1,本例连接后 st1 为”hello,world”strncat(st1,st2,n);n表示连接上 st2 的前 n 个给 st1,在最后不要加 0。4.替换 strcpy(st1,st2);/用 st2 的值替换 st1 的值,字符数组不能如此赋值st1=st2 或 st1=st2
3、都是错误的本例中 st1 值被替代为”world”strncpy(st1,st2,n);n表示复制 st2 的前 n 个给 st1,在最后要加 0。5.其他函数strchr(st1,ch)/ch为要找的字符。如 strchr(st1,e);会截取出 st1 中以字母e开头的字符串,要用string类型的来存储,如string c1;c1=strchr(st1,e);则 c1 为”ello”strspn(st1,st2);/返回 st1 起始部分匹配 st2 中任意字符的字符数。本例中”hello,”中的第一个字符 h不能在”world”中找到匹配字符,因此返回值为 0。如 st1=”rose”
4、;st2=”worse”;则返回值为 4,因为 rose 在 worse 中都能找到匹配字符。strrev();/颠倒字符串二、用字符串来存储字符串string str1,str2;cinstr1str2;/如输入“hello,world”则 str1=”hello,”str2=”world”可直接赋值:str1=str2;1.字符串长度 len=str1.length();2.字符串比较可以直接比较,即str1str2;str1=str2;等3.连接可以直接连接,即str1+=str2;等4.字符串提取 str2=str1.substr();/str2值被赋值为 str1 str2=str1
5、.substr(pos1);/如 str2=str1.substr(2);则 str2=”llo”;str2=str1.substr(pos1,len1);/提取指定位置指定长度的字符串,如 str2=str1.substr(1,2);则 str2=”el”5.字符串搜索 where=str1.find(str2);/返回 str2 是在 str1 中的最先被找到的位置 where=str1.find(str2,pos1);pos1是从 str1 的第几位开始。where=str1.rfind(str2);从后往前搜。6.插入字符串不是赋值语句。str1.insert(pos1,str2);/
6、如 str1.insert(2,str2)则 str1=”heworldllo,”str1.insert(pos1,str2,pos2,len2);str1.insert(pos1,numchar,char);numchar是插入次数,char 是要插入的字符。/inserting into a string#include#include usingnamespace std;int main()string str=to be question;string str2=the ;string str3=or not to be;string:iterator it;/used in the
7、 same order as described above:str.insert(6,str2);/to be(the)question str.insert(6,str3,3,4);/to be(not)the question str.insert(10,that is cool,8);/to be not(that is)the question str.insert(10,to be);/to be not(to be)that is the question str.insert(15,1,:);/to be not to be(:)that is the question it=
8、str.insert(str.begin()+5,);/to be(,)not to be:that is the question str.insert(str.end(),3,.);/to be,not to be:that is the question(.)str.insert(it+2,str3.begin(),str3.begin()+3);/(or)cout str endl;return 0;Basic template member declarations(basic_string)1 2 3 4 5 6 7 8 9 10 11 12typedeftypename Allo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 char c+ string 部分 使用 比较
限制150内