Здравствуйте, уважаемые посетители форума! Это снова я (стаж изучения С - три недели и три дня), и я снова застрял на элементарной программе. На этот раз задача перевернуть 
небольшую введенную строку, т.е. вывести ее наоборот. Например на введенное: "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;
}