輸入一組帶空格的字符串

衆所周知scanf()函數輸入字符串時遇到空格或者回車就會停止錄入字符
即使用
char arr[1000];
scanf("%s", arr);
printf("%s\n", arr);
這種方法不可能輸出一組帶空格的字符串
這時我考慮使用getchar()函數
getchar()函數無論遇到回車時停止錄入(可以錄入空格)
但getchar()只能返回輸入字符串的第一個字符,所以需要循環才能組成字符串
下面請看代碼:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main(){
char a[1000]; //首先定義一個足夠大的數組
char ch;
int i = 0;
while ((ch = getchar()) != EOF){ //使用循環意思爲當 ch!=EOF(ctrl+z)時進行循環否則跳出
if (ch == '\n'){ //判斷是否爲回車若是則將結束符賦給第i-1個元素
a[i] = '\0'; //'\0'結束符當printf()輸出爲'\0'前的所有字符
break;
}
a[i] = ch;//不是回車則賦值給字符串元素
++i;
}
printf("%s\n", a);
printf("%d\n", strlen(a));
return 0;
}
完成目標




























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章