1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void Input1(char* &str){ // 5 /* 6 这种情况下想要逐个输入字符串数组,那么在每次输入一个元素后不要加空格或者按回车, 7 否则不可见的空格符和换行符也会被记录 8 */ 9 for(int i=0;i<5;i++){ 10 scanf("%c",&str[i]); 11 } 12 } 13 14 void Input2(char* &str){ 15 /*这种情况下就可以在输入一个元素按下空格键或者回车键,输出结果依然是正常的*/ 16 for(int i=0;i<5;i++){ 17 scanf(" %c",&str[i]); 18 } 19 } 20 21 void Input3(char* &str){ 22 /*这种情况下就可以在输入一个元素按下空格键或者回车键,输出结果依然是正常的*/ 23 for(int i=0;i<5;i++){ 24 scanf(" %c",&str[i]); 25 getchar(); //用以接收不可见字符 26 } 27 } 28 29 30 int main() 31 { 32 char *str; 33 /* 34 对字符串数组进行初始化(物理存储空间的申请), 35 否则在后面用到的 char *&str 指针引用会报错 36 */ 37 str = (char*)malloc(5*sizeof(char)); 38 //Input1(str); 39 //Input2(str); 40 Input3(str); 41 for(int j=0;j<5;j++){ 42 43 printf("%c ",str[j]); 44 } 45 return 0; 46 }
Input1输入输出结果:
连续输入输出正常
带有空格的输入输出不正常
Input2输入输出结果:
Input3输入输出结果:
相关百度问答:
https://zhidao.baidu.com/question/510517719.html