Функция для "переворота" строки - 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--; } }
Объяснение кода листинга программы
- В функции объявлены три переменные: i, j, l типа int.
- Переменная l инициализируется значением длины строки S с помощью функции strlen.
- Переменные i и j инициализируются значениями 0 и l-1 соответственно.
- В цикле while происходит обмен символами между позициями i и j строки S до тех пор, пока i меньше j.
- Внутри цикла значения переменных i и j инкрементируются и декрементируются соответственно.
- Значение переменной t в каждой итерации цикла равно значению S[i].
- Значение S[i] присваивается значению S[j], а значение S[j] присваивается значению t.
- По завершении цикла, строка S переворачивается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д