1樓:yty隨意
1、首先格式控制字串用於指定輸入資料的格式,一般由格式字串組成,如下圖所示。
2、格式字串以%開頭,在%後是各種格式的格式符,用來說明輸入資料的型別、形式、長度、小數位數。
3、位址列表中給出各變數的位址,用來輸入變數值。
4、函式中的位址,由位址運算子「&」和變數名組成。
5、程式中的&n,表示變數n的位址。
6、scanf函式本質上是給變數賦值,它要求使用變數的位址,如下圖所示就完成了。
2樓:希聲和寡
用scanf不是不顯示空格,而是用scanf接收字串的話,在串首遇到空格的話,跳過,繼續尋找下乙個非空格字元,在串中遇到空格時,結束字串的輸入。
所以如果使用者輸入" abcd efg"的話,scanf取得的字串為"abcd"。
而gets取得字串時,是在遇到eof(串尾)時停止,所以不存在這個問題。
c語言用如何用scanf輸入帶有空格的字串
3樓:網友
c語言中scanf()函式提供的「%[格式串可以用來進行多個字元的輸入,並對結束符進行自定義。 對於%還可以用^+任意字元(包括 eof)來結束字串的輸入,如%[^eof]就是直到有eof 輸入,字串才中止。
void main()
4樓:香夢沉酣
你可以採用gets();函式輸入,空格也算在內的。輸入對應的是puts();要使用這個函式標頭檔案裡面只需新增#include .如果對你有用,望。
5樓:love永遠一號
你就用gets(字串陣列名),別忘了#include
6樓:細雨在微笑
換個方法,不要吊死在一顆(函)樹啊!
7樓:網友
這也有如何用s輸入帶入空格的字串,這個問題很很。很專業。
8樓:初巨集義
你可以在上直接輸入c語言,就有相應的答案。
c語言輸入一箇中間代有空格的字串,為什麼不可以用scanf? 急急急
9樓:網友
預設是以空白符作為結束標記的,如果要用scanf讀取帶空格的字串,可以這樣。
以換行符作為結束標記,從而讀取帶空格的字串。
#include
int main()
10樓:網友
scanf的話讀到空格那麼這個字串就結束了。如果你想讀進帶空格的字串就用gets();
11樓:網友
因為c語言的字串是以'\0'作為結束符為標記的,所以當有空格的時候,scanf就會忽略後面的字串的。
12樓:姬梓瑤兆涵
有了char
a[10];,那麼a就是這個陣列的第乙個元素的指標,&a就是這個陣列的指標;因為一維陣列的第乙個元素的指標和這個陣列的指標是同乙個位址,區別是a+1指向a[1],而&a+1就指向a[10]了(這裡已越界了)。但&a和a的"值"是相同的,只是型別不同。c呼叫函式時,實參的型別都會被強制為形參的型別,scanf("%s",a)或scanf("%s",a)中要求引數是char
型指標,那麼&a儘管是char
型別,但被強行轉換為char
型了……
13樓:網友
用scanf時,它是以空格來標識輸入字串的結束。
14樓:網友
空格會被解釋為結束符。
c語言中怎樣用scanf()讀入帶空格的字串
15樓:polaris北斗
scanf遇到空格就會結束,所以讀不到帶空格的字串。
使用gets()可以解決,gets會把空格讀進來,遇到回車符才會結束。
16樓:雷鵬
現在gcc中gets()不讓用了,可以使用char str[100];
fgets(str,100,stdin);//stdin鍵盤輸入fputs(str,stdout);//輸出或者:char str[100];
scanf("%[^n]",str);//遇到換行符停止printf("%s",str);輸出。
17樓:心雪之靈
這個部落格裡有關於scanf的用途詳解。
scanf讀取字串時為何把空格讀進去了?
18樓:聽不清啊
這是因為%s、%d都會忽略開頭遇到的空格,遇到空格則結束讀入;而%c則把空格也當作是乙個有效字元讀取了。
如果用scanf來接收字串的話,字串中不能含有空格,否則將以空格作為串的結束符,是不是說空格就
19樓:望_稻草人
\0'和空格不是同乙個概念。
0'表示字串。
結束符,代表字串結束,而空格是乙個普通字元,顯示在文字中可以選中。
0'的ascii碼為0,空格的ascii碼為32,兩個不是同乙個字元。
在電腦程式。
中通常使用'\0'表示字串結束,空格為文字字元,2.
還有,如果想取一行字元(包含空格等)用scanf是可以的,但"%s"是不行的,因為%s遇到空白字元(空格、製表符。
就結束了,所以可以寫成 "%[^n]%*c",%[n]的作用剛才講過了,就是讀之外的所有字元,也就是說讀到為止,%*c的作用就是把去掉,否則再次讀的時候一直遇到的都是;。
這樣想讀入一行字串直接用scanf("%[^n]%*c",str);就可以了。或者用gets(),但不推薦這個。
20樓:網友
scanf ()如果使用%s說明符,空白字元之外的所有字元都是可接受的,所以scanf ()跳過空白字元知道遇到第乙個非空白字元,然後儲存再次遇到空白字元之前的所有非空白字元,這就意味著%s使scanf ()讀取乙個單詞……
-摘自《c primer plus》第五版中文版scanf語法定義上就是這樣,空格和\0不一樣,查下ascii碼錶就知道了。
如果想獲取包含空格的字串,可以用gets。
scanf用%c的時候可以識別空格嗎?
21樓:四舍**入
%c前面的空格就是用來遮蔽空白符的。
scanf()讀入字串中的空格)
#include
int main()
char a[777];
scanf("%[^/n]",&a);
printf("%s",a);
return 0;
22樓:北大青鳥東莞金碼學校
控制符不同 你用%c說明是輸入乙個字元 此時可以scanf可以接受空格 但其他控制符都以空格為結束標誌 如%d %s都是以空格為結束 所以你的二個不接受空格。
23樓:超人影視娛樂
題描述一:(scanf()讀入字串中的空格) 。
#include
int main()
說明:在scanf函式中,可以使用 %c來讀取乙個字元,使用 %s 讀取乙個字串,但。
是讀取字串時不忽略空格,讀字串時忽略開始的空格,並且讀到空格為止,因此只能讀取乙個單詞,而不是整行字串,因此一般使用fgets來讀取乙個字串。其實scanf函式也可完成這樣的功能,而且還更強大。這裡主要介紹乙個引數,%[這個引數的意義是讀入乙個字符集合。
是個集合的標誌,因此%[ 特指讀入此集合所限定的那些字元, 比如 %[a-z] 是輸入大寫字母,一旦遇到不在此集合的字元便停止。如果集合的第乙個字元是" ^ ", 這說明讀取不在" ^ " 後面集合的字元,既遇到" ^ " 後面集合的字元便停止。注意此時讀入的字串是可以含有空格的。
通俗易懂叫高質量?程式題要簡單明瞭?
24樓:陳
這根後面要輸入的變數的資料型別有關,%d是乙個整型變數的格式控制,不接字元型資料,%c是字元型變數格式控制,空格字元。
25樓:小唐文件屋
可以的,不過輸入串(%s)時不接受空格。要輸入串時可用gets()函式。
26樓:旁笑槐
%c接受空格的,其他的包括%s都是以空格作為分割符。
c語言中如何用scanf讀取乙個帶有空格的string
27樓:網友
scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格的字串是不可以的,建議用gets來完成這個功能,gets是以回車作為結束的:
char str[40]; gets(str);
28樓:無奈去遊戲
字串本來就不是專職用來讀取字串的,建議你需要讀取帶字串的資料,可以用 頭的。
使用char * gets(char *)讀入 使用 char *puts(char *)輸出。
較為安全的可以使用:
使用char * fgets(char *,int,stdin)讀入 使用 char * fputs(char *,int,stdout) 輸出。
scanf()就是到空格停止讀取但是不丟棄資料。
輸入字串abcdabfabc再輸入字串ab最後輸入字串99要輸出結果為abcdabf99c
1全部 輸入字串abcdabfabc 再輸入字串ab 最後輸入字串99 要輸出結果為abcdabf99c include include include void function char s,char t1,char t2,char w else break if r 0 a w w r t2 ...
用c 解 輸入字串,按照升序輸出。要求字串必須
要求差不多,字串及個數可以自己輸入。版 include using namespace std void main int i,j char pt for i 0 i 4 i for j i 1 j 5 j if strcmp p i p j 0 cout after sorting 輸出排序後的結...
任意輸入字元組成字串,對該字串中的字元按ASCII碼值升序排列後輸出,程式設計實現此功能
在手機知道中已有 知道君 正確的回答,電腦中為何看不見呢 public class form1 不限制輸入的字元個數 private sub button1 click byval sender as system.object,byval e as system.eventargs handles...