李洪强-C语言2-字符串
C語言字符串
一、字符串基礎
注意:字符串一定以\0結尾。
Printf(“yang\n”);
其中yang為字符串常量,“yang”=‘y’+‘a’+‘n’+‘g’+‘\0’。字符串由很多的字符組成,通常使用字符數組來存儲字符串,如char?name[10]=“yang”;也可以以printf(name);的形式輸出,即通過數組來訪問字符串,但會有警告。因為默認情況下,printf函數只接受字符串常量作為參數(對變量并未寫明)。
字符串的三種寫法:
這三種寫法在內存中的表現都是一樣的。
?
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]);
?
總結
以上是生活随笔為你收集整理的李洪强-C语言2-字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java获取当前日期的前一个月,前一天的
- 下一篇: 梦到着火扑灭了又燃起了是什么意思