Jak odwrócić ciąg w C

How Reverse String C



W kodowaniu ciągów odwrócenie ciągów jest kluczowym tematem. Istnieje również kilka metod odwracania ciągu, z których każda ma inną logikę. W tym artykule dowiesz się, jak prawidłowo odwrócić ciąg, aby użyć kilku różnych podejść i rozumowania z wymaganiem jakichkolwiek wstępnie ustawionych funkcji i bez nich. Za każdym razem, gdy odwrócenie techniki ciągu zostanie zastosowane w określonym unikalnym ciągu wejściowym, tekst, który konsument dostarczyłby w określonej kolejności, zostanie całkowicie odwrócony. W poniższym przykładzie zastosowano różne alternatywy odwracania struny za pomocą C.

Podczas wdrażania tego przewodnika pracowaliśmy na systemie Linux Ubuntu 20.04 skonfigurowanym na Virtual Box. Pracując na systemie Linux, większość naszych instalacji i zapytań wykonywaliśmy w powłoce terminala. Dlatego otwórz powłokę terminala za pomocą skrótu Ctrl + Alt + T lub wyszukaj ją za pomocą paska wyszukiwania aplikacji w obszarze Aktywność na pulpicie Ubuntu. Najpierw należy zaktualizować system za pomocą zapytania apt update. Zostaniesz poproszony o podanie aktualnego hasła użytkownika, aby uruchomić aktualizację. Dlatego dodaj hasło i naciśnij przycisk Enter.







$ sudo apt aktualizacja



Ponieważ używaliśmy języka programowania C do opracowania koncepcji odwracania ciągów w systemie Ubuntu 20.04, należy mieć zainstalowany kompilator C w systemie Ubuntu. Dlatego upewnij się, że zainstalowałeś kompilator GCC w swoim systemie za pomocą poniższego zapytania.



$ sudo apt zainstaluj gcc

Przykład 01: Używanie pętli for

Po zainstalowaniu i skonfigurowaniu kompilatora GCC oraz zaktualizowaniu pakietu apt, odwraca się utworzenie nowego pliku. Ten plik powinien być typu C; dlatego użyj polecenia touch, aby utworzyć plik nowy.c, jak poniżej. Ten plik będzie od teraz używany w naszym kodzie podczas implementacji programów odwróconych łańcuchów.





$ dotknij nowy.C

Teraz możesz otworzyć ten plik do edycji lub kodowania za pomocą edytora Nano, który został wbudowany w system Linux Ubuntu 20.04. Dlatego wypróbuj poniższe instrukcje w swojej powłoce, aby to zrobić.



$ nano nowy.C

Nowo utworzony plik typu C new został otwarty w edytorze GNU Nano systemu Ubuntu 20.04. Musisz napisać w nim skrypt C, jak pokazano na zrzucie ekranu poniżej. Pozwól nam omówić ten kod dla lepszego zrozumienia. Na początku kodu zamieściliśmy dwie biblioteki. Biblioteka stdio.h została użyta do pobierania danych wejściowych i wyświetlania wyników, a inna biblioteka string.h została użyta do użycia wszelkiego rodzaju łańcuchów w naszym kodzie. Cała praca związana z odwracaniem ciągu będzie wykonywana w metodzie main() kodu C. Zadeklarowaliśmy typ znakowy string o rozmiarze 50. Oznacza to, że łańcuch zawierający więcej niż 50 znaków nie może być rozpatrywany w tym kodzie. Następnie zadeklarowaliśmy dwie zmienne typu całkowitego. Zmienna l została użyta do zebrania długości łańcucha str, a zmienna I będzie używana jako inicjator w pętli for. Następnie użyliśmy instrukcji printf, aby wydrukować tekst na powłoce Enter string, informujący użytkownika, aby dodał wartość do zmiennej typu string. Metoda scanf() została użyta do wprowadzenia użytkownika w czasie wykonywania i zapisania tej wartości w ciągu znaków. Funkcja strlen() została użyta do sprawdzenia długości łańcucha str, który został dodany przez użytkownika w czasie wykonywania i zapisania go w zmiennej l’. Następnie zainicjowaliśmy pętlę for, aby odwrócić łańcuch str. Widać, że inicjator I’ pobiera wartość ze zmiennej l, aby odwrócić kierunek ciągu. Następnie wypisuje kolejno znaki ciągu str’. W ostatniej, główna metoda została zakończona. Zapisz ten plik za pomocą Ctrl+S i zamknij go za pomocą Ctrl+X.

Teraz nadszedł czas na skompilowanie kodu i sprawdzenie jego wyjścia. Dlatego kompilacja została wykonana przez niżej podane zapytanie gcc o nazwie pliku new.c.

$ gcc nowy.C

Gdy kompilacja się powiedzie, oznacza to, że w naszym kodzie nie ma błędów. Wykonajmy nasz plik przez zapytanie a.out w powłoce w następujący sposób:

$./do.na zewnątrz

Proces wykonania poprosi użytkownika o dodanie ciągu. Dodaliśmy I-Am-Aqsa-Yasin i wcisnęliśmy Enter. Możesz zobaczyć, że zwraca odwrotność ciągu w następnym wierszu.

Przykład 02: Korzystanie z zamiany

W tym przykładzie użyjemy metody zamiany, aby odwrócić kolejność ciągu. Dlatego ponownie otwórz plik new.c za pomocą edytora nano w następujący sposób:

$ nano nowy.C

Teraz plik został otwarty w edytorze GNU nano; musimy zaktualizować plik kodu za pomocą skryptu pokazanego poniżej na zrzucie ekranu. W naszym kodzie umieściliśmy najpierw standardowy plik nagłówka wejściowego i wyjściowego za pomocą słowa kluczowego #include. Zdefiniowaliśmy metodę Reverse() zgodnie z zastosowaniem techniki wymiany. Zainicjowaliśmy trzy zmienne typu całkowitego, new, I oraz swap. Pierwsza pętla for służy do sprawdzania, czy łańcuch s jest pusty, czy nie. Następna pętla for służy do iteracji, aw jej ciele zamieniliśmy wartości za pomocą zmiennych new i swap. Warto zauważyć, że odwrócenie ciągu o długości n zajmuje tylko n/2 rund. Gdy ciągi zostaną zamienione, będziesz musiał ponownie wykonać pętlę, aby pokazać odwrócony ciąg, co robimy w naszej aplikacji za pomocą trzeciej pętli for. Funkcja Reverse() musi być wywołana z wewnętrznego programu głównego. Określiłeś, co twoje oprogramowanie wykonuje z printf w kontekście main(). Następnie użyłeś scanf(), aby uzyskać dane wejściowe użytkownika i wywołałeś metodę Reverse(). Teraz zapisz plik ponownie za pomocą Ctrl + S i wyjdź z edytora nano skrótem Ctrl + X i wróć do powłoki terminala.

Najpierw skompiluj kod za pomocą zapytania gcc, jak poniżej.

$ gcc nowy.C

Teraz wykonaj plik kodu używając tej samej instrukcji ./a.out.

$./do.na zewnątrz

Poprosi Cię o wprowadzenie wartości ciągu. Dodaliśmy AqsaYasin i otrzymaliśmy jego rewers.

Przykład 03: Korzystanie z rekurencji

W tym przykładzie użyjemy rekurencji do odwrócenia ciągu dodanego przez użytkownika. Dlatego ponownie otwórz plik.

$ nano nowy.C

Ten program wypisuje Wprowadź zdanie: Następnie używana jest metoda Reverse(). Pierwsza litera wprowadzona przez użytkownika jest zapisywana w c za pomocą tej metody. Reverse() jest wykonywane ponownie, jeśli argument jest inny niż (nowa linia). Ta procedura jest kontynuowana, dopóki użytkownik nie naciśnie klawisza Enter. Za każdym razem, gdy użytkownik naciśnie klawisz Enter, metoda Reverse() drukuje tekst w odwrotnej kolejności. Zapisz i zamknij plik.

Najpierw skompiluj kod, a następnie uruchom go, używając poprzednich poleceń w następujący sposób:

$ gcc nowy.C

$./do.na zewnątrz

Możesz zobaczyć, że pobiera dane wejściowe od użytkownika jako całe zdanie ciągu, a następnie odwraca kolejność tego zdania.

Wniosek:

Na koniec zrobiliśmy trzy przykłady, aby omówić odwracanie danych wejściowych typu string za pomocą różnych metod, np. za pomocą pętli for, za pomocą rekurencji i za pomocą wymiany.