C語言基礎(6)——字符串處理函數


爲了使用方便,在C語言函數庫裏提供了一些用來專門處理字符串的函數。不過使用這些庫函數時,必須在程序開頭包含string.h頭文件,即:

#include<string.h>;

puts函數和gets函數

puts函數

puts函數一般形式爲:
puts(字符數組)
其作用是將一個字符串(以’\0’結束的字符序列)輸出到終端。例如已定義一個字符數組名str,且數組被初始化爲"million"。執行:

puts(str);

則其結果在終端上輸出“million”。
當然了,用puts函數輸出的字符串中可以包含轉義字符。例如:

char str[]={"million\nhou"};
puts(str);

輸出

million
hou

gets函數

gets函數一般形式爲:
gets(字符數組)
它的作用是從終端輸入一個字符串到字符數組,並且得到一個函數值。該函數值是字符數組的起始地址。

gets(str)

如果從鍵盤輸入:

million↙

將輸入的字符串“million”送給字符數組str(送給字符數組的共有8個字符),返回的函數值是字符數組str的第一個元素地址。


gets和puts函數都只能輸入或輸出一個字符串。


strcat函數

strcat函數是字符串連接函數。
一般形式爲:
strcat(字符數組1,字符數組2)
它的作用就是兩個字符數組中的字符串,把字符串2接到字符串1的後面,然後把得到的結果放到字符數組1中(所以字符數組1的長度要足夠大,以至於能放下連接字符數組2的所有字符),函數調用後得到一個函數值——字符數組1的地址。例如:

char str1[11]="million";	
//字符數組1的長度剛好是連接字符數組2後所有字符的長度
char str1[4]="hou";
printf("%s",strcat(str1,str2));
//經過字符串連接後,原字符串1後面的'\0'取消,然後在新的字符串1的末尾加一個'\0'

輸出:

millionhou	

設字符串str1字符數爲len1(不包括’\0’),字符串2字符數爲len2(不包括’\0’),則定義字符數組str1的最小長度應該爲:
len1+len2+1


strcpy函數

strcpy函數是字符串複製函數。
一般形式爲:
strcpy(字符數組1,字符數組2)
它的作用是將字符串2複製到字符數組1中去,函數調用後得到一個函數值——字符數組1的地址。例如:

char str1[8]="million";
char str1[4]="hou";
printf("%s",strcpy(str1,str2));

輸出:

hou

(1)字符數組1的長度不應該小於字符串2的長度。
(2)字符串2可以是一個字符串常量,例如:

char str1[8]="million";
printf("%s",strcpy(str1,hou));

其執行效果也是一樣的。
(3)做字符串複製操作時,字符串str2和其後面的’\0’一同複製到字符數組1中。新字符數組1中’\0’後面的字符保持原有字符不變。即新字符數組str1第一個’\0’後的’i’ ,‘o’,‘n’和’\0’是保留了原字符數組str1後的4個字符不變。


strcmp函數

strcmp函數是字符串比較函數。
strcmp(字符數組1,字符數組2)
它的作用是比較字符串1和字符串2.比較字符串1和字符串2的大小,分以下3種情況:
(1)字符串1>字符串2,函數返回值爲正整數。
(2)字符串1=字符串2,函數返回值等於0。
(3)字符串1<字符串2,函數返回值爲負整數。
字符串比較方法爲:對兩個字符串從左至右按字符的ASCII碼值的大小逐個字符相比較,直到出現不同的字符或遇到’\0’爲止。比較時,當出現第一個不相等的字符時,由兩個字符的大小決定所在字符串的大小。


不能直接用關係運算符“>,>=,<,<=”來實現對兩個字符串的比較。例如:

char str1[6],str2[6];
if(str1>str2);	//這是錯誤的
……

程序應改爲:

char str1[6],str2[6];
if(strcmp(str1,str2)>0);
……	

strlen函數

strlen函數是測字符串長度函數。
一般形式爲:
strlen(字符數組)
它的作用是測試字符串的長度(不包括串結束標誌’\0’),函數返回值爲字符串的長度。例如:

char str[10]="million";
printf("%d",strlen(str));

輸出的結果是7,而不是8。

strlwr函數

一般形式爲:
strlwr(字符串)
它的作用是將字符串中的大寫字母轉換爲小寫字母。

strupr函數

一般形式爲:
strupr(字符串)
它的作用是將字符串中的小寫字母轉換爲大寫字母。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章