其函式原型為
strcat(char,const char);
strcat是string catenate(字串連線)的縮寫。
該函式有兩個字元陣列的引數,函式的作用是:將第二個字元陣列中的字串連線到前面字元陣列的字串的後面。
第二個字元陣列被指定為const,以保證該陣列中的內容不會在函式呼叫期間修改。連線後的字串放在第乙個字元陣列中,函式呼叫後得到的函式值,就是第乙個字元陣列的位址。例如
char str1[30]=″people′s republic of ″;
char str2=″china″;
cout<
輸出:people′s republic of china
連線前後的狀況如圖5.10所示。
圖5.10
其函式原型為
strcpy(char,const char);
strcpy是string copy(字串複製)的縮寫。
它的作用是將第二個字元陣列中的字串複製到第乙個字元陣列中去,將第乙個字元陣列中的相應字元覆蓋。
例如char str1[10],str2=″china″;
strcpy(str1,str2);
執行後,str2中的5個字元″china″和′\0′(共6個字元)複製到陣列str1中。
關於字串複製函式strcpy的幾點說明:
在呼叫strcpy函式時,第乙個引數必須是陣列名(如str1),第二個引數可以是字元陣列名,也可以是乙個字串常量。
可以用strcpy函式將乙個字串中前若干個字元複製到字元陣列中去。
只能通過呼叫strcpy函式來實現將乙個字串賦給乙個字元陣列,而不能用賦值語句將乙個字串常量或字元陣列直接賦給乙個字元陣列。
其函式原型為
strcmp(const char,const char);
strcmp是string compare(字串比較)的縮寫。
作用是比較兩個字串。
由於這兩個字元陣列只參加比較而不應改變其內容,因此兩個引數都加上const宣告。以下寫法是合法的:
strcmp(str1,str2);
strcmp(″china″,″korea″);
strcmp(str1,″beijing″);
比較的結果由函式值帶回:
如果字串1=字串2,函式值為0。
如果字串1>字串2,函式值為一正整數。
如果字串1《字串2,函式值為一負整數。
字串比較的規則與其他語言中的規則相同,即對兩個字串自左至右逐個字元相比(按ascii碼值大小比較),直到出現不同的字元或遇到′\0′為止。如全部字元相同,則認為相等;若出現不相同的字元,則以第乙個不相同的字元的比較結果為準。
注意:對兩個字串比較,不能用以下形式:
if(str1>str2) cout<
字元陣列名str1和str2代表陣列位址,上面寫法表示將兩個陣列位址進行比較,而不是對陣列中的字串進行比較。對兩個字串比較應該用
if(strcmp(str1,str2)>0) cout<
函式原型為
strlen(const char);
strlen是string length(字串長度)的縮寫。
它是測試字串長度的函式。其函式的值為字串中的實際長度,不包括′\0′在內。
如char str[10]=″china″;
cout<
輸出結果不是10,也不是6,而是5。
以上是幾種常用的字串處理函式
C字串處理函式
void memccpy void dest,const void src,int c,size t n 從src所指向的物件複製n個字元到dest所指向的物件中。如果複製過程中遇到了字元c則停止複製,返回指標指向dest中字元c的下乙個位置 否則返回null。void memcpy void de...
C字串處理函式
void memccpy void dest,const void src,int c,size t n 從src所指向的物件複製n個字元到dest所指向的物件中。如果複製過程中遇到了字元c則停止複製,返回指標指向dest中字元c的下乙個位置 否則返回null。void memcpy void de...
C字串處理函式
void memccpy void dest,const void src,int c,size t n 從src所指向的物件複製n個字元到dest所指向的物件中。如果複製過程中遇到了字元c則停止複製,返回指標指向dest中字元c的下乙個位置 否則返回null。void memcpy void de...