『壹』 c語言,scanf 輸入字元問題

屏幕上輸入的字元,會暫存到緩存。不信,你可以一直按著鍵盤,不多會,你就會聽到系統發出嘟嘟的報警聲,說明緩沖區已經滿了。
scanf()函數只是從當前緩沖區取一個相應的字元;其中緩沖區的最後一個字元為'\n';
按你說的,可以用循環,接收字元同樣可以用getchar()函數。
char ch;
while(1){
scanf("%c",&ch);
if(ch=='\n') break; /* 當輸入回車時,結束 */
/* 對ch做相應處理 */
}

『貳』 c語言關於字元串用scanf輸入的問題

如果第一個是輸入%s 第二個輸入一個%c
那麼由於 回車'鍵'在Windows系統中用"\n\r"兩個字元表示,專所以由於scanf讀入的問題只接受一屬個以字元就會多餘一個,而這個多餘的就會被下一個輸入字元所接受,所以才未輸入就結束了。
這是在兩個輸入之間加入getchar()即可接受這個多餘的字元。或者把輸入字元串改為gets(str)。

『叄』 c語言用scanf輸入字元串

有了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 *型了……

『肆』 c語言怎麼用scanf輸入字元串

c語言用scanf輸入字元串:
char s[300];
scanf("%s",s);
這個語句只能輸入不包含空格和跳格鍵的字元串並且以回車符結束輸入。

『伍』 c語言scanf 和gets對字元串的輸入

?

1234567891011121314151617#include<stdio.h>void main(){char str[100];char* p=NULL;printf("請輸入一段英文文章: ");gets(str);// scanf("%s",str);p=str;for(;*p!='';p++){if(*p=='H'){printf("%s ",p);}}}

在這段簡單的程序中,會出現的是問題在gets(str);處。

當用scanf("%s",str);來獲取這段英文文字的時候,輸出會在第一個空格的地方程序結束,如下圖:

第一次輸入Hello world!後,字元串Hello world!都會被讀到輸入緩沖區中,而scanf()函數取數據是遇到回車、空格、TAB就會停止,也就是第一個scanf()會取出"Hello",而"world!"還在緩沖區中,這樣第二個scanf會直接取出這些數據,而不會等待從終端輸入。

用scanf來讀取一個字元串時,字元串中是不可以出現空格的,一旦出現空格,後面的數據就會舍棄殘留在緩沖區中。其實有另外一個函數是可以接受空格的,那就是gets().第一個字元串取了Hello world! 接受了空格符,而沒有像上一個程序那樣分成了兩個字元串,所以如果要讀入一個帶空格符的字元串時因該用gets(), 而不宜用scanf().

『陸』 C語言scanf,輸入字元

你把scanf("%c\n",&c1)里的「\n」去掉就可以了。換行是根在printf里才可內以執容行的。scanf用於存儲,

#include "stdio.h"
void main()
{
char c1,c2;
scanf("%c",&c1);
printf("%c,%d\n",c1,c1);
c2=c1+32;
printf("%c,%d\n",c2,c2);
}

『柒』 c語言 如何從鍵盤輸入字元串

c語言從鍵盤輸入字元串的步驟如下:

1.首先我們新建一個dev C++的項目。

『捌』 ★C語言 關於scanf輸入字元串的問題

name=%s num=%d 它會按照你的格式來進行接收字元串到 一個內存地址中,但這個地址並不是 你定義的 name[20] 和 num ,而是 stdin 這個結構體中 _base 成員 指向的數據區,這個數據區叫 做 輸入緩沖出,同理 還有 輸出緩沖區 :stdout._base 。 scanf 會接收 全部信息(是你格式中定義的,如 name= num= 當然還有一個空格)也就是說 這些東西都要輸入,把這些信息接收到 stdin._base裡面,然後再 比較數據與已經定義的格式 name=%s num=%d 的匹配情況,將相應的值 再分配到 自己定義的緩沖區中。

你的問題 是 輸入空格是不是代表字元串結束了?
scanf 裡面 一般來說是不接收空格的,但是有例外 ,如 你上面的例子,在格式控制里 有 空格,接收的時候 它就佔一個 位置,也就是你按空格的時候 它在之後會和 你定義的格式控制里的空格匹配。

『玖』 C語言用如何用scanf輸入帶有空格的字元串

要輸入帶空格的字元串,要用到一個格式字元:%[] --> 一個字元集。

「%[]」的作用是掃描字元集合:

例如:scanf(「%[^ ]」,str);

具體作用是:如果輸入的字元屬於方括弧內字元串中某個字元,那麼就提取該字元;如果一經發現不屬於就結束提取。該方法會自動加上一個''到已經提取的字元後面。

#include <stdio.h>

int main()

{

char str[81];

printf("Please input a string: ");

scanf("%[^ ]",&str);

printf("The string is: %s ",str);

return 0;

}

(9)c語言字元串輸入scanf擴展閱讀:

字元串函數應用:

1. 連接運算 concat(s1,s2,s3…sn) 相當於s1+s2+s3+…+sn。

例:concat(『11』,'aa』)='11aa』。

2. 求子串。 Copy(s,I,I) 從字元串s中截取第I個字元開始後的長度為l的子串。

例:(『abdag』,2,3)=』bda』。

3. 刪除子串。過程 Delete(s,I,l) 從字元串s中刪除第I個字元開始後的長度為l的子串。

例:s:=』abcde』;delete(s,2,3);結果s:=』ae』。

4. 插入子串。 過程Insert(s1,s2,I) 把s1插入到s2的第I個位置。

例:s:=abc;insert(『12』,s,2);結果s:=』a12bc』。

5. 求字元串長度 length(s) 例:length(『12abc』)=5。

在ASP中 求字元串長度用 len(s)例: len("abc12")=5。

網路-掃描集