C语言程序去掉字符串中所有空格失败 只能输出空格前部分

#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[80],b[80];
int i,k=0;
scanf("%s", a);
for(i=0;i<10;i++)
{
if(a[i]!=' ')
{
b[k] = a[i];
++k;
}
else
{
;
}
}
printf("%s\n",b);
system("PAUSE");
return 0;
}

你好!!

  因为scanf 函数遇到空格就终止了,你换成 gets(a); 这个函数吧

  

完整的修改后的代码:

#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[80],b[80]={0};  // 初始化一下变量
int i,k=0;
gets(a);               // 函数换了gets
for(i=0;i<10;i++)
{
if(a[i]!=' ')
{
b[k] = a[i];
++k;
}
else
{
;
}
}
printf("%s\n",b);
system("PAUSE");
return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-12

输了几个空格啊??不会是4个吧

#include<stdio.h>
#include <string.h>


{
char a[80],b[80]={0};
int i,k=0;
gets(a);             /*scanf 函数遇到空格就终止了,应换成 gets(a)*/
for(i=0;i<strlen(a);i++)
{
    if(a[i]!=' ')
    {
        b[k] = a[i];
        ++k;
    }
}
printf("%s\n",b);

第2个回答  2013-11-12
#include<stdio.h>
#include<stdlib.h>
int main(){
  char a[80]={},b[80]={};
  int i,k=0;
  scanf("%49[^\n]", a); //按这种格式scanf函数接受空格。
 for(i=0;i<80;i++){
 if (a[i]=='\0')//遇到字符串结尾就中断循环。
 {
  break;
 }
if(a[i]!=' '){
 b[k] = a[i];
 ++k;
 }
}
 printf("%s\n",b);
 system("PAUSE");
 return 0;
 }

第3个回答  2013-11-12
scanf()函数,输入字符串遇到空格就停止了,也就是只输入了空格前面的部分。你可以用gets()函数,就可以输入整个字符串了。
第4个回答  2013-11-12
同意楼上,并且判断空格最好是用空格的ascii码表示

C语言程序去掉字符串中所有空格失败 只能输出空格前部分
因为scanf 函数遇到空格就终止了,你换成 gets(a); 这个函数吧 完整的修改后的代码:include<stdio.h>#include<stdlib.h>int main(){char a[80],b[80]={0}; \/\/ 初始化一下变量int i,k=0;gets(a); \/\/ 函数换了getsfor(i=0;i<10;i++){if(a[i]!=' '){b[k] = a[i]...

C语言如何去掉字符串的空格,用0表示去掉尾部空格,1去掉前部空格,2...
include <stdio.h>char *func0(char *s){ char *p; for(p=s;*p;p++); for(p--;*p==' ';p--); *--p='\\0'; return s;}char *func1(char *s){ char *p,*q; for(p=s;*p==' ';p++); for(q=s;*q++=*p++;); return s;}int main()...

c语言。字符串。编写程序,删除字符串中所有空格并输出
include <stdio.h> include <string.h> int main(void){ int len,i,j;char s[100],a[100];printf("请输入字符串:");gets(s);len=strlen(s);j=0;for(i=0;i<len;i++){ if(s[i]!=' '){ a[j]=s[i];j++;} } a[j]='\\0';printf("%s\\n",a);} ...

c语言 输入一个字符串,删除该字符串中的所有空格并输出处理后的字符串...
int main(){ char s[1024],c[1024];int len,n=0,i;char p,q;p=s;q=c;printf(“请输入字符串的长度:”);scanf("%d",&len);printf(“请输入一串字符串:”);for(i=0;i<len+1;i++){ scanf("%c",p+i);} for(i=0;i<len+1;i++){ if((p+i)>=48&&(p+i)<=57||...

C语言 编写程序输入一个字符串,删除字符串中的所有数字字符后输出此字...
include "stdio.h"include "string.h"void main(){ char str[500];int i;printf("请输入字符串:\\n");gets(str);for(i=0;i<strlen(str);i++){ if(str[i]==' '||(str[i]>='0'&&str[i]<='9'))continue;else printf("%c",str[i]);} printf("\\n");} ...

...个带有空格的字符串,去掉字符串后再输出(要求只能定义一个数_百度知...
1、首先,随便创建一个有main方法的类。2、定义一个字符串变量,这里给变量赋值,前后都留有一个空格。3、先运行一遍,看输出效果,可以看到百度包括空格的几个字符都打印出来了。4、为了更加清晰,用字符串对象另外一个方法“length()”得到此字符串的长度为6, 说明的确是“百度”加两个空格的长度...

c语言编程中如何写出去除字符串中的空格的程序代码
采用指针遍历字符串,如果不是空格则将数据保留在字符串中,如果是空格,则跳过该字符,继续检查下一个字符。参考代码和运行结果如下图:

为什么输入字符串中有了空格就只能显示空格之前的字符
C语言规定用空格和回车来区分两个输入串

c语言编写,输入字符串,删除字符串中所有空格并输出
include <stdio.h>int main (){int i,i1;char a[100];gets(a);for (i=0;a[i]!='\\0';i++)if (a[i]==' ')for (i1=i;a[i1]!='\\0';i1++)a[i1]=a[i1+1];for (i=0;a[i]!='\\0';i++)printf ("%c",a[i]);putchar ('\\n');return 0;...

C语言,(菜鸟)关于删除字符串空格题的疑问。
gets函数可以一次接收一行输入串,其中可以有空格,也就是说空格可以做为字符串的一部分输入。而scanf函数接收的字符串不会含有空格,即遇到字空格时,认为字符串输入结束,也就是说空格是scanf默认的结束符号。

相似回答
大家正在搜