渴望学到知识的菜鸟


私信TA

用户名:ldhskd

访问量:30450

签 名:

这小伙子人行,能处!

等  级
排  名 115
经  验 7685
参赛次数 1
文章发表 48
年  龄 18
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

gets函数的原型是char * gets(char *s);当读取成功的时候返回s,所以这个程序里p的值是和a的值相同的。当gets读取发生错误时返回NULL

while(gets(a))就是只要a能读取成功就一直循环


这样我们就完成了循环的步骤


之后,创建函数,实现出现空格后,把空格后的所有字符向前移一位,从而实现清除空格的效果


不过,需要注意的是,当吧所有字符向前移动一位后,最后一位字符却没有消失

比如:1 2 3 3 4 5 6 7 8 9 把这个数组从第二个3开始向前移动一位

那就是 1 2 3 4 5 6 7 8 9 9  ,就是把后一个赋值给前一个,不过这样的话,最后有一个值是重复的,那就要把最后一个值给设置成结束,也就是'\0'




参考代码:

#include <stdio.h>
#include <string.h>
void fun(char a[])
{
    int i, j;
    for (i = 0; i < strlen(a); i++)
    {
        if (a[i] == ' ')
        {
            for (j = i; j < strlen(a) - 1; j++)
                a[j] = a[j + 1];
            a[j] = '\0';
        }
    }
}
int main()
{
    char a[101];
    while (gets(a))
    {
        fun(a);
        puts(a);
    }
    return 0;
}


 

0.0分

43 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

谢谢
2021-09-24 00:26:00