将一个或多个空格的每个字符串替换为一个空格
Replace each string of one or more blanks with a single blank
这个问题已经有人问过了,但是我自己做了一个程序,但我不知道为什么它不起作用。
int c;
char blank;
while ((c = getchar()) != EOF) {
if (c == ' ') {
putchar(c);
while ((c = getchar()) == ' ') {
putchar('');
}
}
putchar(c);
}
基本上,我所做的就是将 space 替换为空。但它不起作用。如果我输入 '1' 而不是 '' 它会将 spaces 替换为 1s 所以我不知道有什么问题
您的代码中的具体错误在于您使用 putchar()
函数的方式。使用putchar()
时必须在里面放一个字符,如putchar('a')
,但不能留空。这就是您收到错误的原因:
error: empty character constant
基本上,putchar()
必须放置一个字符,单引号之间的任何内容:''
,都不是字符。
要修复您的代码:您应该完全删除 putchar('')
行,这样您的代码将如下所示:
while ((c = getchar()) != EOF) {
if (c == ' ') {
putchar(c);
while ((c = getchar()) == ' ') {
}
}
putchar(c);
}
#我想推荐我的代码:
int c,nb=0;
while((c=getchar())!=EOF){
if(c==' '){
++nb;
if(nb>1){
continue;
}
putchar(c);
}
if(c!=' '){
nb=0;
putchar(c);
}
}
这个问题已经有人问过了,但是我自己做了一个程序,但我不知道为什么它不起作用。
int c;
char blank;
while ((c = getchar()) != EOF) {
if (c == ' ') {
putchar(c);
while ((c = getchar()) == ' ') {
putchar('');
}
}
putchar(c);
}
基本上,我所做的就是将 space 替换为空。但它不起作用。如果我输入 '1' 而不是 '' 它会将 spaces 替换为 1s 所以我不知道有什么问题
您的代码中的具体错误在于您使用 putchar()
函数的方式。使用putchar()
时必须在里面放一个字符,如putchar('a')
,但不能留空。这就是您收到错误的原因:
error: empty character constant
基本上,putchar()
必须放置一个字符,单引号之间的任何内容:''
,都不是字符。
要修复您的代码:您应该完全删除 putchar('')
行,这样您的代码将如下所示:
while ((c = getchar()) != EOF) {
if (c == ' ') {
putchar(c);
while ((c = getchar()) == ' ') {
}
}
putchar(c);
}
#我想推荐我的代码:
int c,nb=0;
while((c=getchar())!=EOF){
if(c==' '){
++nb;
if(nb>1){
continue;
}
putchar(c);
}
if(c!=' '){
nb=0;
putchar(c);
}
}