首页 > 解决方案 > 如何在C中修剪字符串中的空格?

问题描述

我正在尝试编写一个 C 程序来修剪字符串中任何出现的空格并打印结果字符串。但是没有得到想要的结果,我得到了一些随机符号作为输出。请帮我。

#include<stdio.h>
#include<string.h>
int main()
{
    char s[100];char a[100];int i;
    printf("enter the string:\n");
    gets(s);
    int len=strlen(s);
    for(i=0;i<len;i++)
    {
         if(s[i]!=' ')
         {
             a[i]=s[i];
         }
    }

    for(i=0;i<len;i++)
    {
         printf("%c",a[i]);
    }   
}

输入:你好你好

预期输出:HelloHello。

当前输出:Hello◄Hello

标签: c

解决方案


s您应该从to复制a,而不是ato s

也使用fgets代替gets, 并用于isspace检查空白字符。

#include <stdio.h>
#include <ctype.h>

int main() {
    char s[100];
    char a[100];

    fgets(s, 100, stdin);

    int i = 0;
    int j = 0;
    for (; s[i]; ++i) {
        if (!isspace(s[i])) {
            a[j] = s[i];
            ++j;
        }
    }
    a[j] = '\0'; 

    printf("%s\n", a);
    return 0;
}

推荐阅读