Im пытается написать код, в который я ввожу строку, и я получаю ее инвертированной. I.e .: «Nokia» на «Айкон».Инвертировать строку в C
У меня уже есть это в некотором смысле, но теперь я хочу использовать функцию strlen, чтобы получить исходную длину String и создать новую на основе этой длины.
Все, что я получаю от моего printf, это «?».
Вот код:
void main(void)
{
char palavra[10];
char palavra2[10];
int i;
int k;
printf("Introduza uma string: \n");
scanf("%[^\n]", palavra);
for(i = 0, k = strlen(palavra) - 1 ; i <= k; i++, k--)
{
palavra2[k] = palavra[i];
}
printf("\nString invertida: %s", palavra2);
}
Примечание: 'palavra2 [к]' не нулевой символ прекращается. – chux
'for (i = 0, k = strlen (palavra) - 1; i <= k; i ++, k -)' Это настоящая плохая идея использовать 'k' в предложении' i <= k; ' а также do 'k -' Вы фактически только пишете вторую половину строки, без нулевого в конце тоже. – infixed
Почему бы не использовать 'strrev'? – RoadRunner