C++ 字符数组函数与string函数
字符串可以用字符數組與字符串變量兩種方式來存儲,效果類似。
一、用字符數組來存儲字符串:
char st1[100],st2[100] ; //字符數組說明
cin>>st1>>st2;
long a,b;
輸入:hello, world
則st1={‘h’,’e’,’l’,’l’,’o’,’,’,’\0’}
st2={‘w’,’o’,’r’,’l’,’d’,’\0}
字符’\0’為字符串結束標志
1. 字符數組長度
?? strlen(st1); //如a=strlen(st1);b=strlen(st2); 則a=6,b=5
2. 字符數組比較
?? 不能直接比較,st1>st2是錯誤的,要用strcmp()函數
?? strcmp(st1,st2); //st1=st2相等則輸出0,st1<st2輸出-1,st1>st2輸出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[]都是錯誤的
?? 本例中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”;st2=”worse”;則返回值為4,因為rose在worse中都能找到匹配字符。
?? strrev(); //顛倒字符串
二、用字符串來存儲字符串
string str1,str2; cin>>str1>>str2;
//如輸入“hello, world”則str1=”hello,” str2=”world”
可直接賦值: str1=str2;
1. 字符串長度
?? len = str1.length();
2. 字符串比較
?? 可以直接比較,即str1>str2;str1==str2;等
3. 連接
?? 可以直接連接,即str1 += str2;等
4. 字符串提取
?? str2 = str1.substr(); //str2值被賦值為str1
str2 = str1.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); //如str1.insert(2,str2)則str1=”heworldllo,”
??? str1.insert(pos1,str2,pos2,len2);
??? str1.insert(pos1,numchar,char); numchar是插入次數,char是要插入的字符。
7. 替換字符串
?? str1.replace(pos1,str2);
?? str1.replace(pos1,str2,pos2,len2);
8. 刪除字符串
?? str.erase(pos,len)
?? str.clear();
9. 交換字符串
?? swap(str1,str2);
注意:
1.要包含頭文件#include<string>
2.在有些場合下用字符數組char st1[100]比string st2還好用些,可根據具體情況作不同選擇。
3.在讀入一個含有空格的字符串時用cin是不行的(cin讀字符串或字符數組時,自動以空格或回車作為分格符)
轉載于:https://www.cnblogs.com/yxnchinahlj/archive/2011/03/15/1985445.html
總結
以上是生活随笔為你收集整理的C++ 字符数组函数与string函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 凯迪拉克显示电压15伏怎么办
- 下一篇: 请教 Discuz syscache 中