String Reverse C: мощный и легкий инструмент для работы со строками в C
String Reverse в C - это процесс изменения порядка символов в строке на обратный. Например, строка "Hello World" после обращения будет выглядеть как "dlroW olleH".
Для реализации этого можно использовать обычную операцию цикла и временный массив. Вот пример кода, который меняет строку наоборот:
c
#include
#include
void reverse(char *str){
int i = 0;
int j = strlen(str) - 1;
char temp;
while (i < j){
temp = str[i];
str[i] = str[j];
str[j] = temp;
i++;
j--;
}
}
int main(){
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin);
// Удаляем символ новой строки, который добавляется fgets
str[strcspn(str, "\n")] = 0;
// Переворачиваем строку
reverse(str);
printf("Reversed string is: %s", str);
return 0;
}
Этот код сначала запрашивает у пользователя ввод строки с помощью функции fgets. Затем он использует функцию strlen для получения длины строки и определяет два индекса, i (начало) и j (конец), которые будут использоваться для итерации по символам строки. После этого цикл while меняет местами символы, начиная с начала строки и заканчивая ее концом, и продвигает индексы i и j в сторону друг друга, пока они не пересекутся.
Вместо цикла while можно использовать и рекурсивную функцию, вот пример такого решения:
c
#include
#include
void reverse(char *str, int start, int end){
if (start >= end) return;
char temp = str[start];
str[start] = str[end];
str[end] = temp;
reverse(str, start+1, end-1);
}
int main(){
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin);
// Удаляем символ новой строки, который добавляется fgets
str[strcspn(str, "\n")] = 0;
// Переворачиваем строку
reverse(str, 0, strlen(str)-1);
printf("Reversed string is: %s", str);
return 0;
}
Эта функция изменяет порядок символов в строке рекурсивно, начиная со стартового и конечного индексов, заданных входными параметрами. Она проверяет, достигли ли индексы друг друга, и заканчивает выполнение, если это так. Затем она обменивает символы, используя промежуточную переменную temp и вызывает себя повторно для следующей пары индексов (i+1, j-1), пока не переберет все символы.