程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言字符串基礎學習

C語言字符串基礎學習

編輯:關於C

C語言字符串基礎學習

字符串與字符數組都是描述由多個字符構成的數據,字符串借用字符數組來完成處理。但請注意:
    (1)表示字符串數據用雙引號表示,而字符數據用單引號。
    (2)字符串的長度可以根據串中字符個數臨時確定,而字符數組的長度必須事先規定。
    (3)對字符串,系統在串尾加’\O’作為字符串的結束標志,而字符數組並不要求最後一個字符為’\O’。
    (4)用字符數組來處理字符串時,字符數組的長度應比要處理的字符串長度大1,以存放串尾結束符’\O’。
    例如:
    static char city[9]= ’c’,’h’,’a’,’n’,’g‘,’s’,’h’,’a’,’\0').可用字符串描述為:
  static char city[9]={"changsha")或"changsha";   
  上述兩條語句可分別理解為用字符數組來處理字符串,用字符串對字符數組初始化。但千萬請注意不能在程序中給字符數組賦值。例如:
  city一"changsha";/*絕對錯誤*/


  下面介紹用字符數組來處理字符串的一些整體操作:


  1.輸入輸出
  輸入輸出用scan{()、printf()函數完成,采用”%s”格式。輸入輸出參數用字符數組名。
  例如,有如下程序:
    main()
    {char comp[:9];   
    scan{(”%s”,comp);/*本身就是地址,不需加地址運算符*/
    print{COMP=%s”,comp);
    }
    輸入數據:CHINAONE   
    運行結果:COMP—CHINAONE
    說明:
    (1)輸入字符串數據時不需用界定符。
    (2)輸入多個字符串數據時,以空格分隔數據。如果字符串數據本身包含有空格字符,需采用特殊處理。
    (3)輸出先找到存放字符串的字符數組的首地址,遇串尾結束符’\0’結束。輸出字符不包括串尾結束符’\O’。

   (4)如果字符數組中包含多個’\O’,輸出遇到第一個’\0’結束。
   (5)如果字符數組長度大於字符串實際長度,也只輸出到’\O’結束。


    2.字符串處理函數
    puts()與gets()函數包含在頭文件stdio.h中,字符串處理函數包含在頭文件string.h中,用#include,,String.h”指明。
    在以下的函數中,參數str、str1、str2為字符數組類型或指向字符的指針類型。
    (1)puts(str)
    輸出指定字符串。參數可以為字符串常量。
    (2)gets(str)
    從鍵盤輸入字符串至字符數組str中,輸入的字符串可以包含空格。函數的返回值是字符數組str的首地址。
    (3)strcpy(strl,str2)
    將str2的值復制到strl中,實際上完成字符串的賦值操作。要求strl的長度大於str2的長度,第二個參數可以是字符串常量。
    (4)strcat(strl,str2)
    將str2的值連接到strl中原有值的後面。注意strl必須足夠大,以便能容納兩個字符數組中的所有值。連接完成後,兩個字符串並成一個字符串,第一個字符串後面的原結束符自動取消。

     (5)strcmp(st訂,str2)
    比較strl和str2,若兩者相同,返回函數值為0;若strl大於str2,返回函數值為一個正整數;若strl小於str2,返回函數值為一個負整數。
    字符串比較規則與其它語言相同,將兩個字符串中的字符從左至右依次比較,如果全部字符相同,則認為相等;若出現不同字符,則以第一個不同字符比較結果為准。
    兩個參數可以是字符串常量。
    (6)strlen(str)
    函數的返回值為字符串的實際長度。
    (7)strlwr-(str)
    將字符串中大寫字母轉換成小寫字母。
    (8)strupr’(str)
    將字符串中小寫字母轉換成大寫字母。


   

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved