Функция для "переворота" строки - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Собственно необходимо создать свою функцию для "переворота" (вместо "фыв" - "выф") строки.Готовая функция strrev не подходит.Выкладываю свои кривые наработки ,буду рад любым советам.
#include <conio.h>
#include <stdio.h>
#include <string.h>
char rev(char str[100])
        {int len,i; char t[100];
        len=strlen(str);
        for(i=0;i<len/2;i++)
                { t[i]=str[i];
                str[i]=str[len-i-1];
                str[len-i-1]=t[i];
                }
 
         return str;
        }
void main(void)
        { char str[100],n_str[1000]; int i;
         n_str=rev(str);
        printf ("%s\n",n_str );
        getch();
 
        }

Решение задачи: «Функция для "переворота" строки»

textual
Листинг программы
void StrRev(char *S)
{
     int i,j,l;
     char t;
     l=strlen(S);
     i=0;
     j=l-1;
     while (i<j)
     {
        t=S[i];
        S[i]=S[j];
        S[j]=t;
        i++;j--;
      }
}

Объяснение кода листинга программы

  1. В функции объявлены три переменные: i, j, l типа int.
  2. Переменная l инициализируется значением длины строки S с помощью функции strlen.
  3. Переменные i и j инициализируются значениями 0 и l-1 соответственно.
  4. В цикле while происходит обмен символами между позициями i и j строки S до тех пор, пока i меньше j.
  5. Внутри цикла значения переменных i и j инкрементируются и декрементируются соответственно.
  6. Значение переменной t в каждой итерации цикла равно значению S[i].
  7. Значение S[i] присваивается значению S[j], а значение S[j] присваивается значению t.
  8. По завершении цикла, строка S переворачивается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы