//需求1-9:编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替
int c;
while((c = getchar()) != EOF){
while(c == ' '){
c = getchar();
}
putchar(c);
}
遍历数组,找到空格设置一个标志,后续如果有空格,如果标志为已设置,则丢弃
你写c == getchar(); 干啥,这是判断,应该是 c=getchar()。但getchar并不能实现你的功能,得用getch(),修改如下:
#include <conio.h>
void main()
{
char c;
int flag = 0;
while ((c = getch()) != EOF){
if (c != ' ')
{
putchar(c);
flag = 0;
}
else if (!flag)
{
flag = 1;
putchar(c);
}
}
}
参考如下:
char c;
char buf[100]={0};//保存输入的字符串(去掉连续空格)
int j=0;
while( (c = getchar()) != '\n')
{
if(c!= ' ')
buf[j++] = c;
else
{
if(j==0)
buf[j++] = c;
else
{
if(buf[j-1] == ' ')
continue;
else
buf[j++] = c;
}
}
}
buf[j] = '\0';
#include <stdio.h>
#define NONBLANK 'a'
void main(){
int c,lastc;
lastc = NONBLANK;
while((c = getchar()) != EOF){
if(c != ' ' || lastc != ' ')
putchar(c);
lastc = c;
}
}