Я хотел бы перебирать строку (введенную пользователем), возвращая введенную строку с добавленным пространством после каждого символа. То есть «Hello» -> «H e l l o».Объединить две строки итеративно - C
Моего кода в C:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "";
printf("Enter a string: ");
scanf("%s", &str);
int i = 0;
char newstr[150] = "";
for (i = 0; i < strlen(str); i++)
{
strcat(newstr, str[i]);
strcat(newstr, " ");
}
printf("Expanded String: ");
printf("%s", newstr);
return 0;
}
Моих ошибок заключаются в следующем:
предупреждение: проходя аргумент 2 из 'strcat' делает указатель из целого числа без гипса [по умолчанию включено] -----> strcat (newstr, str [i]);
примечание: ожидается 'const char *', но аргумент имеет тип 'char' -----> char * _EXFUN (strcat, (char * __ ограничение, const char * __ ограничение));
Я использую синтаксис python, где я могу конкатенировать индекс строки, это где я ошибаюсь в своем C-коде?
'str [i]' имеет тип 'char', а не' char * '. Эта проблема имеет более легкое решение, если вы просто читаете символ ввода 1 во времени и печатаете 1 символ, 1 пробел, ... – ryanpattison
'str' будет иметь размер один (чтобы удерживать нулевой ограничитель), поэтому вы не будете быть в состоянии подготовить что-либо значимое. Вам не нужно перебирать 'str', чтобы выполнить его; 'strcat' сделает это за вас. –
Вы хотите только распечатать его пробелами между ними или вам это нужно в переменной? – Rizier123