c語言讀入字元串
❶ C語言中怎麼輸入字元串並從中逐一讀取字元
#include<stdio.h>
#include<string.h>
intmain()
{
charpara[100];
inti,k;
/*scanf("%c",para);//%c是單個字元。。。
k=scanf("%c",para);
while(k!=EOF)
scanf("%c",para);
printf("theinputwords: ");
for(i=strlen(para);i>=0;i--)
printf("%c",para[i]);
*/
i=0;
scanf("%c",¶[i]);
while(para[i]!='-')//以輸入-(負)號為字元串輸入的結束符
{
i++;
scanf("%c",¶[i]);
}
k=i;//k是字元串的長度
for(i=k-1;i>=0;i--)//字元串的倒序輸出
printf("%c",para[i]);
printf(" ");
return0;
}
試試上述代碼,我調試過了。。。。
❷ 怎麼用C語言讀取 TXT文件中的字元串
1、首先我們打開電腦里的VS軟體,使用VS新建空工程,直接點擊確定。
❸ C語言中讀取一個字元
getch和getche都是讀入單個字元的,不同的是getch不會將讀書的輸出來,而getche就會再把它輸出到屏幕上。
比如你用getch讀入,按了鍵以後屏幕上沒有輸出,但是實際上已經讀入了。而getche會把你剛按的再輸出來。
getchar則是讀入字元串的。
❹ C語言空白字元讀取問題
當我們讀取字元或者字元串時,有時會遇到煩人的空白字元問題。因為結果很奇怪,為什麼明明程序看起來沒有錯,但是結果讀取到的值卻是空的呢?下面我們來仔細分析一下。
在一個程序中連續讀取多個變數時,如果最後一個是字元類型( char )的話,那麼你一定要注意。
scanf() 傾向於遺留下它「掃視」過但未讀取的字元(包括換行符和陸嘩)。比如下面的程序:
在讀入i的同時,scanf函數調用將會留下沒有消耗掉的任意字元,包括(但不限於)換行符。 getchar() 或者 scanf("%c", ...) 將在隨後取回第一個剩餘字元,但這不是我們所希望的結果。
上述問題的解決方法之一就是可以在讀取字元之前,先確保前面沒有換行符。
上面的方法只是針對換行符,但是如果是其他空白字元的話,就有些麻煩了。在C標准庫中有一個函數可以用來檢測空悉襪白字元,我們需要包含頭文件 ctype.h 。
假如我們要讀取一行字元串,很多人都會採取類似於下面的方法:
NOTE: 注意這里 ch 以及前面的 command 變數都為 int 類型,原因是 getchar() 函數實際上返回的是 int 類型,之所以這樣設計是為了適應 EOF 這個特殊值。當這些函數讀取出錯或者讀完文件後,會返回 EOF 。 EOF 是一個宏,標准規定它的值必須是一個 int 型的負數常量。
上述方法看似沒有任何問題,而且確實是沒有問題。但是在某些情況下,上面的函數就會出現問題。假如在讀入字元串之前,我先讀入了某個變數並按下回車符或者其他空白字元,這時使用上面方法將什麼也讀不到或者讀到的喚行值開頭將是空白字元。
原因很簡單, read_line() 函數中 while 循環結束的條件是讀到換行符,如果前一次讀取遺留下某些空白字元就會影響到後面的 read_line() 讀取。
解決的方法很簡單,下面是新的 read_line() 函數:
我們同樣使用了問題一中的 isspace() 函數。表達式 isspace(ch = getchar()) 控制第一個字元,把讀入的字元存儲在 ch 中,然後使用 isspace() 函數判斷 ch 是否是空白字元。如果不是,循環終止, ch 中包含一個非空白字元。
❺ C語言如何從字元串中讀入字元
在scanf函數中,可以使用%c來讀取一個字元,使用%s讀取一個字元串, 但是讀取字元串時不忽略空格,讀字元串時忽略開始的空格,並且讀到空格為止,因此只能讀取一個單詞,而不是整行字元串。
其實scanf函數也可完成這樣的功能,而且還更強大。這里主要介紹一個參數,%[],這個參數的意義是讀入一個字元集合。[]是個集合的標志,因此%[]特指讀入此集合所限定的那些字元,比如%[A-Z]是輸入大寫字母,一旦遇到不在此集合的字元便停止。如果集合的第一個字元是"^",這說明讀取不在"^"後面集合的字元,既遇到"^"後面集合的字元便停止。注意此時讀入的字元串是可以含有空格的,而且會把開頭的空格也讀進來。