Программа для переворачивания строки

CCBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии вы научитесь писать программу на C для разворота заданной строки. Программа будет запрашивать ввод от пользователя, разворачивать строку и выводить результат в консоль. Эта концепция может быть использована для проверки, является ли строка палиндромом, потому что палиндромная строка будет иметь одинаковое значение даже после ее разворота.

Примечание: вам нужно самостоятельно создать файл ~/project/main.c для практики написания кода и изучения процесса компиляции и запуска программы с использованием gcc.

cd ~/project
## создать main.c
touch main.c
## скомпилировать main.c
gcc main.c -o main
## запустить main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/CompoundTypesGroup(["Compound Types"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/ControlFlowGroup -.-> c/for_loop("For Loop") c/ControlFlowGroup -.-> c/while_loop("While Loop") c/CompoundTypesGroup -.-> c/strings("Strings") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123323{{"Программа для переворачивания строки"}} c/for_loop -.-> lab-123323{{"Программа для переворачивания строки"}} c/while_loop -.-> lab-123323{{"Программа для переворачивания строки"}} c/strings -.-> lab-123323{{"Программа для переворачивания строки"}} c/user_input -.-> lab-123323{{"Программа для переворачивания строки"}} c/output -.-> lab-123323{{"Программа для переворачивания строки"}} end

Объявление переменных и чтение ввода от пользователя

#include <stdio.h>
#include <string.h>

int main() {
   char str[1000], rev[1000];
   int i, j, count = 0;

   printf("Enter a string: ");
   scanf("%s", str);

В этом шаге мы объявляем два массива символов str и rev, а также три целочисленные переменные i, j и count. str используется для хранения исходной строки, введенной пользователем, а rev используется для хранения перевернутой строки. count используется для отслеживания длины строки. Затем мы просим пользователя ввести строку с помощью printf и считываем ее с помощью scanf.

Вычисление длины строки

while (str[count]!= '\0') {
   count++;
}
j = count - 1;

В этом шаге мы используем цикл while для обхода исходной строки до тех пор, пока не встретится нулевой символ \0. На каждой итерации мы увеличиваем переменную count, чтобы подсчитать количество символов в строке. Затем мы присваиваем значение count - 1 переменной j, так как индексация массивов начинается с 0, и мы хотим, чтобы j был индексом последнего символа в исходной строке.

Переворачиваем строку

for (i = 0; i < count; i++) {
   rev[i] = str[j];
   j--;
}
printf("Reversed string: %s\n", rev);

В этом шаге мы используем цикл for для перебора исходной строки. На каждой итерации мы присваиваем символу с индексом j исходной строки соответствующему индексу i в перевернутой строке. Затем мы уменьшаем j и повторяем процесс, пока не перевернем всю строку. Наконец, мы выводим перевернутую строку в консоль с помощью printf.

Полный код

#include <stdio.h>
#include <string.h>

int main() {
   char str[1000], rev[1000];
   int i, j, count = 0;

   printf("Enter a string: ");
   scanf("%s", str);

   while (str[count]!= '\0') {
      count++;
   }
   j = count - 1;

   for (i = 0; i < count; i++) {
      rev[i] = str[j];
      j--;
   }
   printf("Reversed string: %s\n", rev);

   return 0;
}

Резюме

В этом практическом занятии вы узнали, как написать программу на C для переворачивания заданной строки. Вы узнали, как вычислить длину строки с использованием цикла while и как перевернуть строку с использованием цикла for и переменной индекса. Написание программ для манипуляции строками - это важный навык в программировании на C, и освоив его, вы сможете выполнять многие полезные задачи.