Переворот строки: Несовместимость типов int и char - C (СИ)
Формулировка задачи:
Есть простенькая программка с функцией reverse, которая изменяет порядок символов строки на обратный
компилятор ругается на несовместимость типов int и char в for (i=0, j=strlen(i)-1; i<j; i++, j--)
И ещё =) Не бейте за дурацкий вопрос, но почему при вводе строки через scanf("%d", &s), например при char s[10], при выводе этой строки через printf на выходе получаем не саму строку, а её числовой код и как этого избежать?
int main(int argc, char *argv[])
{
void reverse(char s[]);
char s[10];
scanf("%d", &s);
reverse(s);
printf("%d\n", s);
system("PAUSE");
return EXIT_SUCCESS;
}
void reverse(char s[])
{
int c, i, j;
for (i=0, j=strlen(i)-1; i<j; i++, j--)
{
c=s[i];
s[i]=s[j];
s[j]=c;
}
}Решение задачи: «Переворот строки: Несовместимость типов int и char»
textual
Листинг программы
char s[10];
scanf("%s", s);
reverse(s);
printf("%s\n", s);
Объяснение кода листинга программы
- Вводится строка
sтипаcharс размером 10 символов. - С помощью функции
scanfвводится строка вs. - Вызывается функция
reverseс аргументомs. - Выводится перевернутая строка
sс помощью функцииprintf.