或许有些模糊,我给你说说,我在你的程序里加了一个n,用来检测n=strlen(a),结果如图,你仔细看,那是1003,也就是说你的循环里,strlen(a)的值1003,那么这个循环就很大了,你的输入,输出都在循环内,你就算按shift导出结果,你还在循环内。所以其实并没有结束,当然如果你输入1003个字符应该有Press any key to continue.针对这种从键盘输入的字符串,不知道它的长度,不要用strlen(),我建议你用gets(a);或者fgets(a,999,stdin);这些直接输入,之后你再测字符串长度或者让它a[i]!='\0';这些都可以作为控制条件。下面是我改后的:#include<stdio.h>int main (){char a[999];int i;gets(a);for (i=0;a[i]!='\0';i++){ if(a[i]!=' ') { printf("%c",a[i]); }}return 0;}这是结果,图片模糊,但还是能看,sorry。还有问题吗,谢谢采纳,Thanks♪(・ω・)ノ