Здравствуйте, уважаемые посетители форума! Это снова я (стаж изучения С - три недели и три дня), и я снова застрял на элементарной программе. На этот раз задача перевернуть
небольшую введенную строку, т.е. вывести ее наоборот. Например на введенное: "Hello, world!" компьютер должен немедленно отвечать "!dlrow ,olleH". Попытки были, компилятор ругается на меня, как будто я сделал что-то плохое.
Теперь о попытках:
Код:
#include <stdio.h>
#include <math.h>
#include <locale.h>
#include <stdlib.h>
#include <string.h> //здесь ничего интересного
int main (void)
{
int i=0,len=0,temp=0;
int j;
char str[255];
setlocale(LC_ALL, "rus");
printf("Обработчик строк 2.0 \n");
printf("Введите фразу \n");
gets(str);
while (str[i]!=0)
{
len=len+1; //в этом цикле узнаем длину строки
i++;
}
for (i=0, j=len-1; i<=j; i++, j--)
{
temp=str[i];
str[i]=str[j]; //здесь суть - меняем местами элементы на одинаковом расстоянии от концов
str[j]=temp;
}
printf("len=%i \n",len);
printf("Перевернули строку: \n");
for(i=0;i<len;i++)
{
printf("%s",str[i]);
}
return 0;
}