一个令人疑惑的小程序
#include<stdio.h>void main(){ int i=0,j; char ch[10]; printf("请输入字符串的长度:"); scanf("%d",&j); [color=#FF0000]//char c=getchar();[/color] printf("请输入元素\n"); while(i<j) { ch[i]=getchar(); i++; }ch[i]='\0'; printf("输出字符串:%s\n",ch);} 1 #include<stdio.h> 2 int main() 3 { 4 int i=0,j; 5 char ch[10]; 6 printf("请输入字符串的长度:"); 7 scanf("%d",&j); 8 getchar(); 9 printf("请输入元素\n"); 10 while(i<j){ 11 ch[i]=getchar(); 12 i++; 13 getchar(); 14 } 15 ch[i]='\0'; 16 printf("输出字符串:%s\n",ch); 17 }
[解决办法]
scanf("%d",&j);
读入j后会将换行符放回缓冲区供自己或其他函数读取
[解决办法]
http://topic.csdn.net/u/20100413/22/e1f309ba-437c-4375-9eb6-b1be52da6429.html楼主可以看看:
[解决办法]
dPN
顶啊顶啊
3GM
顶啊顶啊
I6a
顶起来!
[解决办法]
建议楼主这样输出看看字符数组里保存的内容.
#include<stdio.h>void main(){ int i=0,j; char ch[10]; printf("请输入字符串的长度:"); scanf("%d",&j); //char c=getchar(); printf("请输入元素\n"); while(i<j) { ch[i]=getchar(); i++; } ch[i]='\0'; printf("输出字符串:%s\n",ch); for(i = 0; i < j; i++) { printf("ch[%d]=%d\n", i, ch[i]); //输出字符对应的十进制数,10为回车符. }}