2016年計算機二級考試C語言考點解析:字符串

字號:


    10.1 字符串與字符數(shù)組
    1.字符數(shù)組的定義
    定義方法與前面介紹的類似,只是將數(shù)組定義為字符型即可。例如:
    char c[10];
    這里定義了一個包含10個元素的字符數(shù)組c。
    2.字符數(shù)組的初始化
    對字符數(shù)組初始化,可以采用以下方法:
    (1)逐個字符賦給數(shù)組中各元素;
    (2)用字符串常量使字符數(shù)組初始化。
    3.字符串
    在C語言中,字符串是作為字符數(shù)組來處理的,字符串可以存放在字符型一維數(shù)組中,故可以把字符型一維數(shù)組作為字符串變量。
    字符串常量是用雙引號括起來的一串字符。
    C語言中約定用′\0′作為字符串的結(jié)束標(biāo)志,它占內(nèi)存空間,但不計入串的長度,′\0′的代碼值為0。
    系統(tǒng)對字符串常量也自動加一個′\0′作為結(jié)束符。例如″c language″共有10個字符,但在內(nèi)存中占11個字節(jié),最后一個字節(jié)存放′\0′。
    4.字符數(shù)組的輸入輸出
    (1)逐個字符輸入和輸出
    ①在標(biāo)準(zhǔn)輸入輸出printf和scanf中使用%c格式描述符;
    ②使用getchar和putchar函數(shù)。例如:
    for(i=0;i<10;i++)
    scanf(″%c″,&str[i]);/*或str[i]=getchar();*/
    str[i]=′\0′;/*人為加上串結(jié)束標(biāo)志*/
    for(i=0;i<10;i++)
    printf(″%c″,str[i]);/*或putchar(str[i]);*/
    (2)字符串整體輸入輸出
    ①在標(biāo)準(zhǔn)輸入輸出函數(shù)printf和scanf中使用%s格式描述符;
    輸入形式:
    char str[6];
    scanf(″%s″,str);
    其中 str為字符數(shù)組名,代表著str字符數(shù)組的起始地址,輸入時系統(tǒng)自動在每個字符串后加入結(jié)束符′\0′。若同時輸入多個字符串,則以空格或回車符分隔。
    輸入形式:
    printf(″%s″,str);
    輸字符串時,遇第一個′\0′即結(jié)束。但可人為控制輸出串所占的域?qū)捜纾?BR>    printf(″%6s″,str);/*若字符串中字符多于6個,仍將全部輸出*/
    printf(″%-6s″,str);/*只輸出前6個字符,多余的不輸出*/
    ②使用gets和puts函數(shù)輸入輸出一行
    gets函數(shù)用來從終端鍵盤讀字符,直到遇換行符為止,換行符不屬字符串的內(nèi)容。
    調(diào)用形式:
    gets(str);
    str為字符數(shù)組名或字符指針,字符串輸入后,系統(tǒng)自動將′\0′置于串尾代替換行符。若輸入串長超出數(shù)組定義長度時,系統(tǒng)報錯。
    Puts函數(shù)用來把字符串的內(nèi)容顯示在屏幕上。
    調(diào)用形式:
    puts(str);
    str的含義同上。輸出時,遇到第一個′\0′結(jié)束并自動換行,字符串中可以含轉(zhuǎn)義字符。