字串可以用字元陣列與字串變數兩種方式來儲存,效果類似。
一、用字元陣列來儲存字串:
char st1[100],st2[100] ; //字元陣列說明
cin>>st1>>st2;
long a,b;
輸入:hello,
world
則st1=
st2=
字元』\0』為字串結束標誌
1. 字元陣列長度
strlen(st1); //如a=strlen(st1);b=strlen(st2); 則a=6,b=5
2. 字元陣列比較
不能直接比較,st1>st2是錯誤的,要用strcmp()函式
strcmp(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都是錯誤的
本例中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
2.在有些場合下用字元陣列char st1[100]比string st2還好用些,可根據具體情況作不同選擇。
3.在讀入乙個含有空格的字串時用cin是不行的(cin讀字串或字元陣列時,自動以空格或回車作為分格符)
在C 中字元陣列和字串
唯一的區別就是字串末尾有乙個 0 面字元陣列是沒有的.char ch1 hello 該串有6個字元,5個可見字元,因為是串,所以末尾自動加上 0 共六個 char ch2 這樣寫就成了陣列.是確確實實的5個字元 把乙個char陣列,轉換成乙個string。char tmp1 string tmp2 ...
字串和字串陣列
字串陣列 include int main int argc,const char ar printf name1 s n name1 name1 zhangsan 部分初始化中,沒有被初始化的元素預設是0,0 對應的ascii值是 0 char name2 9 printf name2 s n n...
C 中字元和字串
定義 好好學習,天天向上 這個字串,將字串中 天天 兩個字替換為 時時 要求結果字串為 好好學習,時時向上 例如 string a 好好學習,天天向上 console.writeline a.replace 天 時 console.readkey 取出該檔名 abcd.cs 的字尾名,例如 stri...