C語言字符串


 

C語言字符串

一、字符串基礎

注意:字符串一定以\0結尾。

Printf(“yang\n”);

其中yang為字符串常量,“yang”=‘y’+‘a’+‘n’+‘g’+‘\0’。字符串由很多的字符組成,通常使用字符數組來存儲字符串,如char name[10]=“yang”;也可以以printf(name);的形式輸出,即通過數組來訪問字符串,但會有警告。因為默認情況下,printf函數只接受字符串常量作為參數(對變量並未寫明)。

字符串的三種寫法:

  1. Char name[8]=“yang”;//數組占用了8個字節的存儲空間,但是只含有5個字符。
  2. Char name[8]={‘y’+‘a’+‘n’+‘g’+‘\o’};
  3. Char name[8]={‘y’+‘a’+‘n’+‘g’+‘0’};

這三種寫法在內存中的表現都是一樣的。

 

Char name[]={‘y’+‘a’};前面不寫個數,不是一個字符串,只能說是一個普通的字符數組。

char name[]=“yang”;

Name[1]=‘o’;把字符串的第二個元素值由a改成o。

 

二、字符串使用注意點

(1)分析代碼,了解\0的作用。

Char name[]=“yang”;

Char name2[]={‘o’+‘k’};

Printf(“name2=%s”,name2);

%s:根據右邊的參數,打印字符串(遇到\0為止)

上面代碼的打印結果為:okyang

下面是內存情況分析:

 

問1:Char name[]=“y\0ng”;則打印結果為什么?(oky)

問2:此時打印name的值,使用%s是多少?Y\0ng還是y?

(2)Strlen函數

Strlen函數計算字符串的長度(字符數)但不包括\0,是字符數不是字數。比如一個漢字占三個字符。

Strlen(“haha”);//長度為4

Strlen(“哈haha”);//長度為7而不是5

char name[]=“it\0cast”;

Strlen(name);值為2,因為strlen從字符串的地址開始計算,直到遇到\0為止。

假設

Char name[]=“itcast”;

Char name2[]={‘o’+‘k’};

Int size=strlen(name);

此時size的值為8。

(3)練習,編寫一個函數char_contains(char str[],char c),如果字符串中包含字符c,則返回1,否則返回0。

Int char_contains(char str[],char c)

{

//遍歷整個字符串

For(int i=0,i<strlen(str);i++)

{

If(str[i]==c)

Return 1;

}

Return 0;

}

 

//調用語句

Int result=char_contains(“yang”,‘a’);

//使用while循環

①. While(i<strlen(str))

②. While(str[i]!=‘\0’)

③. While(str[i])

④. Int i=-1;while(str[i++])

 

三、字符串數組

二維字符數組,存儲兩個字符串數組,每個的長度為1,下面是兩種寫法但存儲情況是一樣的。

Char name[2][10]={“jack”,“rose”};

Char name2[2][10]={

{‘j’+‘a’+‘c’+‘k’+‘\0’},

{‘r’+‘o’+‘s’+‘e’+‘\0’}

}

把rose輸出:printf(“%s”,name2[1]);

輸出k:printf(“%c”,name2[0][3]);

 


免責聲明!

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



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