C語言——字符與字符串

這是寫的第一篇博客,從此開啓我的博客生涯。

今天想盡量把疑惑自己很久的C語言中字符和字符串的問題理一理,都是一些很基本的內容。

現在就開始吧!!!!


字符型數據:字符,字符串

字符:字符串常量,字符串變量

字符串:字符串常量,字符串變量


下面一一展開講解:

1,字符常量:

   C語言中有兩類字符常量:
    
     一類是用單撇號括起來的字符。如'a','x','d','?'等都是字符常量。
    
    另一類是用一種特殊形式的字符常量,就是以一個字符“\”開頭的字符序列。


2,字符變量:

   字符變量用來存放字符常量,它只能放一個字符。
  
   字符變量定義形式如下:char c1,c2;

注意:

      不要以爲一個字符變量中可以放一個字符串。

      在所有的編譯系統中都規定以一個字節來存放一個字符。

      字符變量在內存中是將相應的ASCII代碼放到存儲單元中,它的存儲形式就與整數的存儲形式類似。


3,字符串常量:

     字符串常量是一對雙撇號括起來的字符序列。

注意:

    'a'和"a"的不同。

    字符串以字符'\0'結束,程序常利用該結束符作爲判斷字符串結束的標記,從而實現對字符串的輪詢操作。


在C語言中,沒有專門的字符串變量,如果想將一個字符串存放

在變量中以便保存,

必須使用字符數組,即用一個字符型數組來存放一個字符串,數

組中每一個元素存放一個字符。


4,字符數組:

    用來存放字符數據的數組;字符數組中的一個元素存放一個字符。

    在C語言中,是將字符串作爲字符數組來處理的。

  初始化:
    char c[ ] = {"I am happy"};

    char c[ ] = "hello world";  //不用花括號

      注意:數組c的長度是11,而不是10.

   因此上面的初始化與下面的初始化等價:

   char c[ ] = {'I',' ','a','m',' ','h','a','p','p','y','\0'};

   而不與下面的等價:

   char c[ ] = {'I',' ','a','m',' ','h','a','p','p','y'};

   字符數組的輸入輸出:

   有以下兩種方法:
      
         1,用格式控制符“%c”逐個字符輸入輸出。(利用for循環實現)

         2,將整個字符串用控制符“%s”一次輸入或輸出。
  
   字符串常用處理函數:
     
//1,求字符串的長度:strlen()
//2,字符串拷貝:strcpy()
//3, 字符串比較:strcmp( )
 //4,從字符串中尋找字符:strchr( )
 //5,從字符串中尋找子串:strstr( )
 //6,從字符串中刪除子串:strdel( )

---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
scanf :當遇到回車,空格和tab鍵會自動在字符串後面添加'\0',但是回車,空格和tab鍵仍會留在輸入的緩衝區中
printf,scanf,以控制符%s輸入輸出時,遇到空格輸入輸出結束。

以下幾個常用字符串的C函數:(以下內容爲轉載)
1.輸入字符串──gets()函數
(1)調用方式:gets(字符數組)
(2)函數功能:從標準輸入設備(stdin)──鍵盤上,讀取1個字符串(可以包含空格),並將其存儲到字符數組中去。
(3)使用說明
           1)gets()讀取的字符串,其長度沒有限制,編程者要保證字符數組有足夠大的空間,存放輸入的字符串。

           2)該函數輸入的字符串中允許包含空格,而scanf()函數不允許。

2.輸出字符串──puts()函數

(1)調用方式:puts(字符數組)
(2)函數功能:把字符數組中所存放的字符串,輸出到標準輸出設備中去,並用‘\n’取代字符串的結束標誌‘\0’。所以用puts()函數輸出字符串時,不要求另加換行符。
( 3)使用說明
           1)字符串中允許包含轉義字符,輸出時產生一個控制操作。
           2)該函數一次只能輸出一個字符串,而printf()函數也能用來輸出字符串,且一次能輸出多個。







  
     
   





















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