C語言練習 字元陣列處理

2021-07-28 13:49:52 字數 1748 閱讀 8729

在c中沒有string型別,對字串的操作一般在字元陣列中進行。下面給大家介紹一下四對字元的輸入輸出函式,以及使用時的注意點。

(1)scanf輸入,printf輸出

scanf和printf對字元的輸入輸出有兩種型別,有兩種型別,%c和%d。這是大家平常遇見的最常用的字元處理函式,不用多說,相信大家都已經很熟了。

(2)getchar輸入,putchar輸出

getchar和putchar只能進行單個的字元輸入輸出。這兩個函式大家也已經很熟悉了,但千萬不要藐視他們,因為在有些時候他們真的非常有用!例如下面。

(3)gets輸入,puts輸出

gets用來輸入一行字串。

注意1:gets識別換行符\n作為輸入結束,因此scanf完乙個整數後,如果要用gets,需要先用getchar接收整數後的換行符。因為程式接收整數的時候,只會拿走數字,而不拿走後面的換行符。例如:你輸入「123\n」,變數只拿走了123,卻沒有把『\n』也一起拿走。如果這個時候緊接著使用gets,那只會得到『\n』,而不能得到後面真正字串的內容。如果連續使用gets獲取幾個字串,則可以直接連續使用gets。因為每次gets的時候都會拿走字串最後面的『\n』,不影響後面的讀入。puts用來輸出乙個字串。並在其後緊跟乙個換行符。

注意2:如果不是使用scanf的%s格式或者gets()格式輸入字串,例如使用getchar()或者%c,請一定在輸入的字串之後加上'\0'。因為輸出字串時printf和puts函式認為'\0'是字串的結尾,如果字串結尾沒有'\0',printf和puts會因為無法識別字串結尾而輸出一大段亂碼。

示例**:

#include#includeint main () 

puts(str1);

for (int i = 0; i < 3; i ++)

system("pause");

return 0;

}

示例輸入:

示例輸出:

(4)sscanf與sprintf

sscanf與sprintf是字串處理的利器,大家最好學會他們。

在介紹sscanf和sprintf之前先給大家介紹一下scanf和printf吧。事實上可以寫為以下兩種形式,其中screen表示螢幕:

scanf(screen, 「%d」, &n);

printf(scareen, 「%d」, n);

scanf的輸入其實就是把screen的內容以「%d」的個格式傳輸到n中,printf的輸出是把n以「%d」的格式傳輸到screen中。

我們模擬scanf和printf來學習sscanf和sprintf。

首先,他們的格式是相同的。只不過是把screen換成了字元陣列。如下所示:

sscanf(str, 「%d」, &n);是把字元陣列str中的內容以「%d」的格式寫到n中。

sprintf(str, 「%d」, n);是把n以「%d」的形式寫到str字元陣列中。

示例**:

#include#includeint main ()
示例輸出:

C語言程式設計練習 字串A B

本題要求你計算a b。不過麻煩的是,a和b都是字串 即從字串a中把字串b所包含的字元全刪掉,剩下的字元組成的就是字串a b。輸入在2行中先後給出字串a和b。兩字串的長度都不超過10 4 並且保證每個字串都是由可見的ascii碼和空白字元組成,最後以換行符結束。在一行中列印出a b的結果字串。i lo...

C語言練習 字串中分離整型數

字串中分離整型數 按照要求的輸入輸出樣例編寫,輸入或貼上程式 勿以附件形式提交 檔案。在乙個字串中包含了若干數字字元,要求編寫乙個函式 fun函式 將字串的數字字元分離出來,形成乙個整型數。具體要求 1 主函式 main函式 輸入包含數字字元的字串,呼叫fun函式分離成整型數,輸出結果 2 fun函...

VIP試題 基礎練習 字串對比(C語言)

問題描述 給定兩個僅由大寫字母或小寫字母組成的字串 長度介於1到10之間 它們之間的關係是以下4中情況之一 1 兩個字串長度不等。比如 beijing 和 hebei 2 兩個字串不僅長度相等,而且相應位置上的字元完全一致 區分大小寫 比如 beijing 和 beijing 3 兩個字串長度相等,...