保存字符串的方法


1.字符數組:

                     char str[]=”sbdc”;

            char str2[]={“abdcdef”}; 

  但是如果char str2[]={‘a’,’d’,’f’,’g’},想用printf(“%s”,str)這種格式輸出,會遇到如下的結果: 

   原因為 printf這個函數是遇到’\0’就結束,所以解決的方法是:char str2[]={‘a’,’d’,’f’,’g’,’\0’},結果如下:

 

 

或者解決方法為:

也就是說,定義數組的時候,也設置了數組的長度也可以輸出理想的結果!

2.字符串指針(指向一個字符串的指針變量)

 

例如: int  *p;  分兩種:

 

  (1)字符指針(總結:用單引號的為字符指針)

 

     char ch=’a’;

 

     char *s=&ch;

 

  (2)字符串指針(用雙引號的為字符串指針)

 

      cahr  *str=”abc”;

 

   從上面這個實例,可以知道  定義了一個字符串指針變量,變量名為 strstr存放的是 “abc”這個字符串的首地址,這個首地址就是第一個字符的地址  &a.

 

   用字符串指針遍歷讀取字符串的每個字符兩種方法:

 

 

( str+1 表示指向下一個元素的地址)

 

注意:字符串指針不能直接接收鍵盤輸入的內容!

         字符串可以從鍵盤中輸入內容:

             

             

           

             (要注意以上三種的區別)  因為 str=&str[0]

             字符串指針不能直接接收鍵盤輸入的內容:

            

           字符串數組保存在棧區,可以被讀寫。字符串的寫入操作如下:

            

           

        字符串指針存放內存中的常量區,只可以讀,不能被修改。

3.char類型的指針數組,可以保存多個字符串

     字符串數組的要求有兩個:

    (1)該數組是二維的字符數組

    (2)是char類型的指針數組

            char *str[]={“asd”,”fgh”,”ert”};

            用for循環來遍歷每個字符串

             forint i=0;i<3;i++{printf(“%s\n”,str[i])};

注意: 

1不能修改 字符串的內容,因為每個字符串都在內存的常量區存儲(常量的數據只能讀,不能修改)

2).   字符串指針變量可以重新被賦值,但是指向會發生改變,如果s重新被賦值的內容是相同的,此時,指向沒有發生改變

    

 

      

3)字符數組不能被整體重新賦值,但是可以改變某個字符!

 

4.二維的字符數組也可以存放多個字符數組,可以改變某個字符串的某個字符。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM