關於字符串(1)


    1.字符數組str[ ]

           字符數組與普通數組一樣,都是數組,只不過儲存的是字符,而且C和C++都爲它提供了很多函數。

         1.初始化

          (1)  字符數組可以逐個賦值,類似於 char c[10];      c[0]='I'   c[1]='M' 一直像後面賦值,就是將10 個元素分別賦值給c[0]~c[9],也可以用c[10]={' S '.....'E' };的方法賦值。

          (2)  用字符串常量來初始化 char str[ ]={"I am happy"}; 也可以也成char str[ ]="I am happy";
            注:如果是剛接觸C++的請注意單引號與雙引號的區別。

         2.字符數組的賦值和引用

          比如a和b都是相同長度和類型的字符數組,我們用 “   a=b   ”將b賦值給a是錯誤的。但是 a[0]=b[0]是正確的。

         3.字符串及其結束標誌

          在我們之前瞭解到了字符數組中,比如用一個一維數組 char str[12]={' I ','   ','  a ',' m ','   ',' h ','  a ','  p ',' p ',' y ' };我們可以看到,空格和字母算起來一共是10個字符。但是我們創建的是一個長度爲12的字符數組,那麼最後兩個位置系統會怎麼辦呢? 那就是用‘\0’自動填補空字符。

           我們的小標題是字符串的結束標誌,那麼可以猜到‘\0’就是我們的字符串結束標誌了。也就是遇到‘\0’就代表字符串到此結束,由它前面的字符組成有效字符串。我們往往可以不需要知道字符串的長度而依靠‘\0’來判斷字符串是否結束了。
           注:‘\0’代表ASCII碼爲0的字符,是一個不能夠顯示的字符。

           4.字符串的輸入和輸出         

            (1)對於字符數組,我們可以用for循環逐個輸入和輸出。

            (2)整個字符串輸入輸出:

                                    char str[20] ;

                                    cin>>str;

                                    cout<<str;

                     注:在執行cout時,str代表第一個元素也就是str[0]的地址,執行“cout<<str” 代表是從str所指向的第一個元素開始輸出,直到遇見'\0'爲止。輸入時不包括'\0'(系統會自動在你輸入完畢按enter時在後面的單元裏面加)。

             5.字符串處理函數對字符串進行操作

            頭文件爲string 和string.h.


           (1).字符串連接函數 strcat(char[ ],const char[ ])
                 char str1[30]="People's Pepublic of ";
                 char str2[  ]="China";
                 cout<<strcat(str1,str2);
           輸出:
                 People's Republic of China

           

             (2).字符串複製函數strcpy(char[ ],const char[ ])
                  strcpy將第二個字符數組中的字符複製到第一個字符數組中,並將第一個覆蓋。
                  char str1[10],str2[ ]="China";
                  strcpy(str1,str2);
                   注:在函數中第一個參數是數組名,第二個可以是字符串常量,如:
                              strcpy(str1,"hello");
                   也可以用strcpy(str1,str2,num);          num 代表數字,是將str2的前num個字符複製到str1中去,再在後面加一個‘\0’.

                   之前有提到不能用str1=str2直接賦值,現在就能用這個函數賦值了。



              (3).字符串比較函數strcmp(const char[ ],const char[ ])
                   下面的寫法都是合法的:
                                                strcmp(str1,str2);
                                                strcmp("China","Korea");
                                                strcmp(str1,"Beijing");
                   因爲只參加比較而不改變內容,所以都加const聲明。
                   比較規則爲兩個字符串從左到右依次比較(按ASCII碼比較大小),直到遇見不同的字符,就以這個字符比較的結果爲準,如果沒有不同的字符,則返回0.如果str1大於str2,則返回正整數,如果小於返回負整數。(與賦值類似,不可以用str1>str2這種表達方法,因爲這代表兩個地址而你想比較的是內容。)



             (4).字符串長度函數strlen(const char [ ]);
                   這個函數測試字符串的實際長度,不包括'\0'在內
                   char str[10]="happy";
                   cout<<strlen(str);
                   輸出的結果爲5(實際長度)。

          



           以上是對字符的輸入輸出以及一些簡單的處理函數的總結與概括。後面還有繼續介紹。 

                                                                          

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