C语言字符串函数
C語言提供的字符串處理函數,可以對字符串進行輸入、輸出、合并、修改、比較、轉換、復制、搜索等操作,使用這些現成的函數可以大大減輕我們的編程負擔。
用于輸入輸出的字符串函數,例如printf、puts、scanf、gets等,使用時要包含頭文件stdio.h,而使用其它字符串函數要包含頭文件string.h。
string.h是一個專門用來處理字符串的頭文件,它包含了很多字符串處理函數。
字符串連接函數 strcat()
strcat 是 string catenate 的縮寫,意思是把兩個字符串拼接在一起,語法格式為:
strcat(arrayName1, arrayName2);arrayName1、arrayName2 為需要拼接的字符串。
strcat() 將把 arrayName2 連接到 arrayName1 后面,并刪除原來 arrayName1 最后的結束標志’\0’。這意味著,arrayName1 必須足夠長,要能夠同時容納 arrayName1 和 arrayName2,否則會越界。
strcat() 的返回值為 arrayName1 的地址。
下面是一個簡單的演示:
#include <stdio.h> #include <string.h> int main(){char str1[100]="The URL is ";char str2[60];printf("Input a URL: ");gets(str2);strcat(str1, str2);puts(str1);return 0; }運行結果:
Input a URL: http://www.baidu.com↙ The URL is http://www.baidu.com字符串復制函數 strcpy()
strcpy 是 string copy 的縮寫,意思是字符串復制,也即將字符串從一個地方復制到另外一個地方,語法格式為:
strcpy(arrayName1, arrayName2);strcpy() 會把 arrayName2 中的字符串拷貝到 arrayName1 中,字符串結束標志’\0’也一同拷貝。請看下面的例子:
#include <stdio.h> #include <string.h> int main(){char str1[50] = "《C語言》";char str2[50] = "http://www.baidu.com";strcpy(str1, str2);printf("str1: %s\n", str1);return 0; }運行結果:
str1: http://www.baidu.com你看,將 str2 復制到 str1 后,str1 中原來的內容就被覆蓋了。
另外,strcpy() 要求 arrayName1 要有足夠的長度,否則不能全部裝入所拷貝的字符串。
字符串比較函數 strcmp()
strcmp 是 string compare 的縮寫,意思是字符串比較,語法格式為:
strcmp(arrayName1, arrayName2);arrayName1 和 arrayName2 是需要比較的兩個字符串。
字符本身沒有大小之分,strcmp() 以各個字符對應的 ASCII 碼值進行比較。strcmp() 從兩個字符串的第 0 個字符開始比較,如果它們相等,就繼續比較下一個字符,直到遇見不同的字符,或者到字符串的末尾。
返回值:若 arrayName1 和 arrayName2 相同,則返回0;若 arrayName1 大于 arrayName2,則返回大于 0 的值;若 arrayName1 小于 arrayName2,則返回小于0 的值。
對4組字符串進行比較:
#include <stdio.h> #include <string.h> int main(){char a[] = "aBcDeF";char b[] = "AbCdEf";char c[] = "aacdef";char d[] = "aBcDeF";printf("a VS b: %d\n", strcmp(a, b));printf("a VS c: %d\n", strcmp(a, c));printf("a VS d: %d\n", strcmp(a, d));return 0; }運行結果:
a VS b: 32 a VS c: -31 a VS d: 0如果感覺不錯的話請點贊喲!!!
總結