C'de Bir Dize Nasıl Ters Çevirilir

How Reverse String C



Dizi kodlamada, dizi ters çevirme çok önemli bir konudur. Bir diziyi tersine çevirmek için her biri farklı bir mantığa sahip birkaç yöntem de vardır. Bu makale, önceden ayarlanmış herhangi bir işleve ihtiyaç duymaksızın birkaç farklı yaklaşım ve akıl yürütmeyi kullanmak için bir dizeyi nasıl düzgün bir şekilde tersine çevireceğinizi gösterecektir. Belirli bir benzersiz girdi dizesinde bir dize tekniğinin tersine çevrilmesi uygulandığında, bir tüketicinin belirli bir sırayla sağlayacağı metin tamamen tersine çevrilir. Aşağıdaki örnekte, bir diziyi C ile tersine çevirmenin farklı alternatifleri kullanılmıştır.

Bu kılavuzu uygularken Virtual Box üzerinde yapılandırılmış Ubuntu 20.04 Linux sistemi üzerinde çalışıyoruz. Bir Linux sistemi üzerinde çalışırken, kurulumlarımızın ve sorgularımızın çoğunu terminal kabuğunda yapardık. Bu nedenle, terminal kabuğunu Ctrl+Alt+T kısayoluyla açın veya Ubuntu masaüstünün Etkinlik alanı altındaki bir uygulama arama çubuğu aracılığıyla arayın. Öncelikle apt update sorgusu ile sisteminizi güncellemeniz gerekmektedir. Güncellemeyi çalıştırmak için mevcut kullanıcı şifresini soracaktır. Bu nedenle, bir şifre ekleyin ve Enter düğmesine basın.







$ sudo uygun güncelleme



Ubuntu 20.04 sisteminde dizgileri ters çevirme kavramını detaylandırmak için C programlama dilini kullandığımızdan, Ubuntu sistemlerinde bir C derleyicisinin kurulu olması gerekir. Bu nedenle, aşağıdaki sorgu aracılığıyla sisteminize GCC derleyicisini kurduğunuzdan emin olun.



$ sudo apt yükleme gcc

Örnek 01: For Döngüsü Kullanımı

GCC derleyicisinin kurulumu ve konfigürasyonu ve apt paketinin güncellenmesinden sonra sıra yeni bir dosya oluşturmaya döner. Bu dosya C tipi olmalıdır; bu nedenle, aşağıdaki gibi bir new.c dosyası oluşturmak için touch komutunu kullanın. Bu dosya bundan sonra ters dize programlarının uygulanması sırasında kodumuzda kullanılacaktır.





$ yeni dokunun.C

Artık bu dosyayı Ubuntu 20.04 Linux sisteminizde yerleşik olarak bulunan bir Nano düzenleyici tarafından düzenlemek veya kodlamak için açabilirsiniz. Bu nedenle, bunu yapmak için aşağıdaki talimatları kabuğunuzda deneyin.



$ nano yeni.C

Yeni oluşturulan C-type dosyası new, Ubuntu 20.04 sisteminin GNU Nano Editöründe açıldı. Aşağıdaki ekran görüntüsünde gösterildiği gibi içine bir C betiği yazmanız gerekir. Daha iyi anlamanız için bu kodu detaylandıralım. Bir kodun başlangıcında iki kütüphane ekledik. stdio.h kütüphanesi girdileri almak ve çıktıları görüntülemek için kullanıldı ve diğer string.h kütüphanesi kodumuzda her türlü dizgiyi kullanmak için kullanıldı. Bir dizgiyi tersine çevirmenin tüm işi, bir C kodunun main() yönteminde yapılacaktır. str karakter tipini 50 boyutunda ilan ettik. Bu, 50'den fazla karakter içeren bir dizginin bu kodda eğlendirilemeyeceği anlamına gelir. Bundan sonra, iki tamsayı tipi değişken tanımladık. l değişkeni, bir dizgenin uzunluğunu toplamak için kullanılmıştır ve I değişkeni, for döngüsünde bir başlatıcı olarak kullanılacaktır. Daha sonra, bir kullanıcıya bir dize değişkenine bir değer eklemesini söyleyen Enter dize kabuğuna bir metin yazdırmak için bir printf ifadesi kullandık. Scanf() yöntemi, kullanıcıyı çalışma zamanında girmek ve bu değeri bir dizge dizgisine kaydetmek için kullanılmıştır. strlen() işlevi, bir kullanıcı tarafından çalışma zamanında eklenen bir str dizesinin uzunluğunu kontrol etmek ve onu bir l' değişkenine kaydetmek için kullanılmıştır. Sonra str dizesini tersine çevirmek için bir for döngüsü başlattık. I' başlatıcısının bir dizgenin yönünü tersine çevirmek için bir l değişkeninden değer aldığını görebilirsiniz. Ardından, bir dizgenin karakterlerini birer birer tersine çevirerek yazdırır. Sonunda, ana yöntem sona erdi. Bu dosyayı Ctrl+S kullanarak kaydedin ve Ctrl+X ile çıkın.

Şimdi kodu derleme ve çıktısını kontrol etme zamanı. Bu nedenle derleme, new.c dosyasının adıyla aşağıda belirtilen gcc sorgusu tarafından yapılmıştır.

$ gcc yeni.C

Derleme başarılı oldukça, kodumuzda hata yok demektir. Dosyamızı kabukta a.out sorgusu ile aşağıdaki gibi çalıştıralım:

$./ile.dışarı

Yürütme işlemi, kullanıcıdan bir dize eklemesini isteyecektir. I-Am-Aksa-Yasin'i ekledik ve Enter'a bastık. Aşağıdaki satırda bir dizenin tersini döndürdüğünü görebilirsiniz.

Örnek 02: Değiştirmeyi Kullanma

Bu örnekte, bir dizgenin sırasını tersine çevirmek için takas yöntemini kullanacağız. Bu nedenle, nano düzenleyiciyi aşağıdaki gibi kullanarak new.c dosyasını bir kez daha açın:

$ nano yeni.C

Artık dosya GNU nano düzenleyicide açılmıştır; kod dosyasını ekran görüntüsünde aşağıda gösterilen komut dosyası ile güncellememiz gerekiyor. Standart girdi ve çıktı başlık dosyasını ilk önce #include anahtar sözcüğünü kullanarak kodumuza ekledik. Takas tekniğinin kullanımına göre bir Reverse() metodu tanımladık. Yeni, I ve takas olmak üzere üç tamsayı türü değişkeni başlattık. İlk for döngüsü, s dizesinin boş olup olmadığını kontrol etmek için kullanılır. Sonraki for döngüsü yineleme için kullanılır ve gövdesinde, yeni ve takas değişkenlerini kullanarak değerleri değiştirdik. n uzunlukta bir diziyi tersine çevirmenin sadece n/2 tur sürdüğünü belirtmekte fayda var. Dizeler değiştirildikten sonra, üçüncü bir for döngüsü kullanarak uygulamamızda yaptığımız ters dizeyi göstermek için tekrar döngüye girmeniz gerekecek. Reverse() işlevi, ana programın içinden çağrılmalıdır. Main() bağlamında, yazılımınızın printf ile ne yaptığını belirtmişsiniz. Bundan sonra, kullanıcı girdisini almak için scanf()'i kullandınız ve Reverse() yöntemini çağırdınız. Şimdi Ctrl+S kullanarak dosyayı tekrar kaydedin ve Ctrl+X kısayoluyla nano düzenleyiciden çıkın ve terminal kabuğuna dönün.

Kodu önce aşağıdaki gibi bir gcc sorgusu ile derleyin.

$ gcc yeni.C

Şimdi aynı ./a.out talimatını kullanarak kod dosyasını yürütün.

$./ile.dışarı

Dize değerini girmenizi isteyecektir. AqsaYasin'i ekledik ve tersini aldık.

Örnek 03: Özyinelemeyi Kullanma

Bu örnekte, bir kullanıcı tarafından eklenen bir dizgiyi tersine çevirmek için özyinelemeyi kullanacağız. Bu nedenle dosyayı tekrar açın.

$ nano yeni.C

Bu program yazdırır Bir cümle girin: Daha sonra bir Reverse() yöntemi kullanılır. Bir kullanıcı tarafından girilen ilk harf bu yöntemle c'ye kaydedilir. Argüman (yeni satır) dışında bir şeyse, Reverse() yeniden yürütülür. Bu prosedür, kullanıcı Enter tuşuna basana kadar devam eder. Kullanıcı enter tuşuna her bastığında, Reverse() yöntemi metni ters sırada yazdırır. Dosyayı kaydedin ve kapatın.

Önce kodu derleyin ve ardından aşağıdaki gibi önceki komutları kullanarak çalıştırın:

$ gcc yeni.C

$./ile.dışarı

Bir kullanıcıdan tam bir dize cümlesi olarak girdi aldığını ve ardından bu cümlenin sırasını tersine çevirdiğini görebilirsiniz.

Çözüm:

Son olarak, bir dizi tipi girdiyi farklı yöntemlerle tersine çevirmek için üç örnek yaptık, örneğin, döngü için kullanma, özyineleme kullanma ve takas kullanma.