Как добавить пробел между символами, используя C - PullRequest
0 голосов
/ 14 января 2019

Я хочу пробел между каждым символом строки, как я буду вводить "HELLO"

результат будет "H E L L O"

Мне нужна помощь в этом

[Редактировать из комментариев]

Я хочу это в строке

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

Ответы [ 2 ]

0 голосов
/ 15 января 2019

попробуйте

    #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;
    }
0 голосов
/ 14 января 2019

Короче, более общий ответ заключается в том, что вам нужно отбросить символы назад и вставить между ними символ ''. Что ты на сегодня сделал? Это должно быть на месте?

Одно (возможно, не оптимальное, но простое для решения) создание большего массива, копирование чередующимися буквами, что-то вроде (не гарантируется дословная работа)

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] = ' ';
}

Конечно, эта новая строка находится в строке, но работает по желанию. В какой момент у вас возникают проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...