日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

李洪强-C语言2-字符串

發布時間:2023/11/29 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 李洪强-C语言2-字符串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ?

C語言字符串

一、字符串基礎

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

Printf(“yang\n”);

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

字符串的三種寫法:

  • Char?name[8]=“yang”;//數組占用了8個字節的存儲空間,但是只含有5個字符。
  • Char?name[8]={‘y’+‘a’+‘n’+‘g’+‘\o’};
  • 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]);

    ?

    總結

    以上是生活随笔為你收集整理的李洪强-C语言2-字符串的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。