c語言中常用的字符串處理函數


字符串標准函數的原型在頭文件string.h中。
1.輸入字符串──gets()函數
(1)調用方式:gets(字符數組)
(2)函數功能:從標准輸入設備(stdin)──鍵盤上,讀取1個字符串(可以包含空格),並將其存儲到字符數組中去。
(3)使用說明

       1)gets()讀取的字符串,其長度沒有限制,編程者要保證字符數組有足夠大的空間,存放輸入的字符串。
       2)該函數輸入的字符串中允許包含空格,而scanf()函數不允許。

2.輸出字符串──puts()函數
(1)調用方式:puts(字符數組)
(2)函數功能:把字符數組中所存放的字符串,輸出到標准輸出設備中去,並用‘\n’取代字符串的結束標志‘\0’。所以用puts()函數輸出字符串時,不要求另加換行符。
( 3)使用說明

        1)字符串中允許包含轉義字符,輸出時產生一個控制操作。
        2)該函數一次只能輸出一個字符串,而printf()函數也能用來輸出字符串,且一次能輸出多個。

3.字符串比較──strcmp()函數
(1)調用方式:strcmp(字符串1 ,字符串2)
其中“字符串”可以是串常量,也可以是1維字符數組。
(2)函數功能:比較兩個字符串的大小。
如果:字符串1=字符串2,函數返回值等於0;
字符串1字符串2,函數返回值正整數。
(3)使用說明

1)如果一個字符串是另一個字符串從頭開始的子串,則母串為大。
2)不能使用關系運算符“==”來比較兩個字符串,只能用strcmp() 函數來處理。

[案例6.7] gets函數和strcmp函數的應用。

/*案例代碼文件名:AL6_7.C*/
/*功能:簡單密碼檢測程序*/
#include "stdio.h"
main()
{char pass_str[80]; /*定義字符數組passstr*/
int I=0;
/*檢驗密碼*/
while(1)
{clrscr();
printf("請輸入密碼\n");
gets(pass_str); /*輸入密碼*/
if(strcmp(pass_str,“password”)!=0) /*口令錯*/
printf("口令錯誤,按任意鍵繼續");
else
break; /*輸入正確的密碼,中止循環*/
getch();
I++;
if(I==3) exit(0); /*輸入三次錯誤的密碼,退出程序*/
}
/*輸入正確密碼所進入的程序段*/
}

4.拷貝字符串──strcpy()函數
(1)調用方式:strcpy(字符數組, 字符串)
其中“字符串”可以是串常量,也可以是字符數組。
(2)函數功能:將“字符串”完整地復制到“字符數組”中,字符數組中原有內容被覆蓋。
(3)使用說明
1)字符數組必須定義得足夠大,以便容納復制過來的字符串。復制時,連同結束標志'\0'一起復制。
2)不能用賦值運算符“=”將一個字符串直接賦值給一個字符數組,只能用strcpy()函數來處理。

5.連接字符串──strcat()函數
(1)調用方式:strcat(字符數組, 字符串)
(2)函數功能:把“字符串”連接到“字符數組”中的字符串尾端,並存儲於“字符數組”中。“字符數組”中原來的結束標志,被“字符串”的第一個字符覆蓋,而“字符串”在操作中未被修改。
(3)使用說明
1)由於沒有邊界檢查,編程者要注意保證“字符數組”定義得足夠大,以便容納連接后的目標字符串;否則,會因長度不夠而產生問題。
2)連接前兩個字符串都有結束標志'\0',連接后“字符數組”中存儲的字符串的結束標志'\0'被舍棄,只在目標串的最后保留一個'\0'。

6.求字符串長度──strlen()函數(len是length的縮寫)
(1)調用方式:strlen(字符串)
(2)函數功能:求字符串(常量或字符數組)的實際長度(不包含結束標志)。

7.將字符串中大寫字母轉換成小寫──strlwr()函數
(1)調用方式:strlwr(字符串)
(2)函數功能:將字符串中的大寫字母轉換成小寫,其它字符(包括小寫字母和非字母字符)不轉換。

8.將字符串中小寫字母轉換成大寫──strupr()函數
(1)調用方式:strupr(字符串)
(2)函數功能:將字符串中小寫字母轉換成大寫,其它字符(包括大寫字母和非字母字符)不轉換。
9. strncat()函數

 char *strncat(char *dest, const char *src, size_t n);

  把src所指字符串的前n個字符添加到dest結尾處(覆蓋dest結尾處的'/0')並添加'/0'。
  src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。
  返回指向dest的指針。
10.strncpy()函數 char *strncpy(char *dest, const char *src, size_t n);  strncpy不復制最后的'/0'結束符,所以是不安全的。


 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: