Функция strcat
принимает две строки (указатели на char
) в качестве аргументов. Из контекста кажется, что text[l]
- это один char
, который не может быть использован.
Один из способов обойти это - создать небольшую односимвольную временную строку для символа:
for (int l = start_index; l < strlen(text); l++) {
char temp[] = { text[l], '\0' }; // Don't forget the terminator
strcat(rs, temp);
}
Другое решение состоит в том, чтобы вообще не использовать strcat
, а вместо этого использовать индексирование строки rs
для непосредственного присвоения элементам строки:
size_t end_of_rs = strlen(rs);
for (int l = start_index; l < strlen(text); l++) {
rs[end_of_rs++] = text[l];
}
rs[end_of_rs] = '\0'; // Make sure string is terminated
Илигораздо более простое решение: объединить непосредственно из text
:
strcat(rs, &text[start_index]);
Но для этого вы должны убедиться, что start_index
не выходит за пределы text
(т.е. вам необходимо убедиться, что start_index < strlen(text)
).