c語言字元串輸入scanf
『壹』 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!='