鍍金池/ 教程/ C/ C語(yǔ)言字符串
C語(yǔ)言printf()和scanf()函數(shù)
C語(yǔ)言strlen()函數(shù)
C語(yǔ)言指針
C語(yǔ)言ftell()函數(shù)
C語(yǔ)言#ifdef指令
C語(yǔ)言程序執(zhí)行流程
C語(yǔ)言歷史
C語(yǔ)言fprintf()和fscanf()函數(shù)
C語(yǔ)言#define指令
C語(yǔ)言#if指令
C語(yǔ)言將數(shù)組傳遞給函數(shù)
C語(yǔ)言指針的指針
C語(yǔ)言rewind()函數(shù)
C語(yǔ)言常量
C語(yǔ)言strcat()函數(shù)
C語(yǔ)言#ifndef指令
C語(yǔ)言continue語(yǔ)句
C語(yǔ)言注釋
C語(yǔ)言#include指令
C語(yǔ)言類型轉(zhuǎn)換
C語(yǔ)言strcpy()函數(shù)
C語(yǔ)言strlwr()函數(shù)
C語(yǔ)言while循環(huán)
C語(yǔ)言字符串
C語(yǔ)言strrev()函數(shù)
C語(yǔ)言gets()和puts()函數(shù)
C語(yǔ)言文件處理
C語(yǔ)言存儲(chǔ)分類
C語(yǔ)言運(yùn)算符
C語(yǔ)言數(shù)據(jù)類型
C語(yǔ)言strcmp()函數(shù)
C語(yǔ)言VS開(kāi)發(fā)環(huán)境安裝
C語(yǔ)言轉(zhuǎn)義序列
C語(yǔ)言第一個(gè)程序
C語(yǔ)言變量
C語(yǔ)言goto語(yǔ)句
C語(yǔ)言預(yù)處理器指令
C語(yǔ)言指針?biāo)阈g(shù)運(yùn)算
C語(yǔ)言數(shù)學(xué)函數(shù)
C語(yǔ)言二維數(shù)組
C語(yǔ)言for循環(huán)
C語(yǔ)言命令行參數(shù)
C語(yǔ)言通過(guò)值和引用函數(shù)
C語(yǔ)言fputs()和fgets()函數(shù)
C語(yǔ)言do-while循環(huán)
C語(yǔ)言結(jié)構(gòu)體數(shù)組
C語(yǔ)言循環(huán)
C語(yǔ)言#pragma指令
C語(yǔ)言關(guān)鍵字
C語(yǔ)言#error指令
C語(yǔ)言聯(lián)合體
C語(yǔ)言特點(diǎn)
C語(yǔ)言break語(yǔ)句
C語(yǔ)言遞歸
C語(yǔ)言函數(shù)
C語(yǔ)言結(jié)構(gòu)體
C語(yǔ)言switch語(yǔ)句
C語(yǔ)言結(jié)構(gòu)體嵌套
C語(yǔ)言fputc()和fgetc()函數(shù)
C語(yǔ)言fseek()函數(shù)
C語(yǔ)言字符串函數(shù)
C語(yǔ)言if-else語(yǔ)句
C語(yǔ)言教程
C語(yǔ)言宏
C語(yǔ)言數(shù)組
C語(yǔ)言strupr()函數(shù)
C語(yǔ)言#undef指令

C語(yǔ)言字符串

C語(yǔ)言中的字符串是由\0(空字符)終止的字符數(shù)組。

在C語(yǔ)言中有兩種方法可以用來(lái)聲明字符串。

  • 通過(guò)字符數(shù)組
  • 通過(guò)字符串文字

我們來(lái)看一下C語(yǔ)言中用char數(shù)組聲明字符串的例子 -

char ch[11]={'y', 'i', 'i', 'b', 'a', 'i', '.', 'c', 'o', 'm', '\0'};

如你所知,數(shù)組索引從0開(kāi)始,所以它將如下圖表所示 -

0 1 2 3 4 5 6 7 8 9 10
y i i b a i . c o m \0

在聲明字符串時(shí),如果不想數(shù)組大小是強(qiáng)制性的。 那么可以將上面的代碼改寫為如下:

char ch[]={'j', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't', '\0'};

您還可以通過(guò)字符串文字定義字符串。 例如:

char ch[]="yiibai.com";

在這種情況下,'\0'將由編譯器自動(dòng)在字符串末尾附加。

char數(shù)組和字符串文字之間的區(qū)別

唯一的區(qū)別是字符串字面值不能改變,而由char數(shù)組聲明的字符串可以更改。

C語(yǔ)言字符串示例

我們來(lái)看一個(gè)簡(jiǎn)單的例子來(lái)聲明和打印字符串。 '%s'用于打印字符串。創(chuàng)建一個(gè)源文件:string-print.c,其代碼如下 -

#include <stdio.h>  
void main()
{
    char ch[11] = { 'y', 'i', 'i', 'b', 'a', 'i', '.', 'c', 'o', 'm', '\0' };
    char ch2[] = "www.yiibai.com";

    printf("Char Array Value is: %s\n", ch);
    printf("String Literal Value is: %s\n", ch2);
}

執(zhí)行上面示例代碼,得到以下結(jié)果 -

Char Array Value is: yiibai.com
String Literal Value is: www.yiibai.com