如何使用C在每个字符之间添加空格

时间:2019-01-14 20:36:33

标签: c

我想要在字符串的每个字符之间留一个空格,就像我将给输入"HELLO"

结果将为"H E L L O"

我需要帮助

[根据评论编辑]

我想要一个字符串

  for (i = 0; i <= strlen(str); i++) {
    printf("\n String is: %s", str[i]);
    printf(" ");
  }

2 个答案:

答案 0 :(得分:1)

更简短,更笼统的答案是,您需要将字符回退,并在字符之间插入''。到目前为止你做了什么?需要安装吗?

一个(也许不是最佳方法,但易于遵循的解决方案)将是制作一个更大的数组,以交替的字母进行复制,例如(不保证逐字工作)

char foo[N]; // assuming this has N characters and you want to add a space in between all of them.
char bar[2*N];
for (int i = 0; i < N; i++) {
    bar[2*i] = foo[i];
    if (i != N - 1)
        bar[2*i + 1] = ' ';
}

当然,此新字符串在bar内,但可以根据需要起作用。您什么时候遇到问题?

答案 1 :(得分:1)

尝试

    #include <stdio.h>

    void add_spaces(char need_to_add[])
    {
        int len = strlen(need_to_add);
        char with_spaces[len*2];
        int space_index = 0;
        for (int i=0 ; i<len ; i++)
        {
            with_spaces[space_index]=need_to_add[i];
            with_spaces[++space_index]=' ';
            space_index=space_index+1;
        }
        printf("%s\n", with_spaces);
    }
    int main() 
    {
        char * a = "aaa";
        add_spaces(a); // fraught with problems

        return 1;
    }