C语言问题: 编写一个程序,接受一个不长于256个字符串的输入,输出时,将该字符串中连续的多个空格用一个

2024-11-18 16:40:31
推荐回答(5个)
回答(1):

呃。。。。

悲剧了,很久没弄C,都把基本语法忘掉了。。。。

就跟你说下思路吧。。。。

如果你只是为了输出时显示,可以像楼上说的那样。。。。

就像这样——
#include

void main() {
char a[256];
gets(a);
char flag=a[0];
for(int i=0;a[i];i++){
if((flag==' ')&&(a[i]==' '))
continue;
printf("%c",a[i]);
flag=a[i];
}
printf("\n");
}

flag就是一个标识郑姿变量,用来标识前面的输出是否存在了空格。。。。

如果存在的话并且当前的a[i]也为空格的话,就直接continue掉,不用输出任何东孝丛返西。。。。

否则执行下面的语句,输出a[i],并且把flag等于当前输出的值,用于与后面的a[i+1]的值进巧饥行比较。。。。

大概就是这样,呵呵。。。。

回答(2):

输出的时候进行判断就行了
先申请一个字符变量
字符变量用来清裤记录上一个字符
然后开始循环每一个输入的字符与空格判断 如果是空格 让他字符变量判断答告简 相等 不输出 不相等友型 输出。

回答(3):

#include "stdio.h"

void my_strcat(char dest[],char const str[]);
int main(void)
{
char ch[256];
char *p=NULL;
printf("Please input ch:");
gets(ch);
p=ch;
while((*p)!='\0')
{
if((*p)=='困毕胡 '&&*(p+1)=='汪拦 ')
my_strcat(p,p+1);
else p++;
}
printf("After switch:%s",ch);
return 0;
}

void my_strcat(char dest[],char const str[])
{

char *p=str;
while(*p!='\数桐0')
{
*(dest++)=*(p++);
}
*dest='\0';
}

回答(4):

首先这个题目里存在一个问题,C语言程序通过输入不可能接受一个包含空格的字符串歼运,遇到空格系统自动判定为字符串结束,空格之后的字符作为第二个字符串处理。
如果一定要做腊改拦,那么那个含有空格的字符轮胡串一定是作为一个字符串常数在程序中定义的。

回答(5):

太easy了,任何一本c书籍都有类似的例子,懒也要有个限度吧