C'de Popüler Dize İşlevleri [Örneklerle]
Yayınlanan: 2020-10-21C dilinde dizeler, boş karakterlerle ('\0') biten bir karakter dizisidir. Bir dizenin sonundaki boş karakter, onun sonunu belirtir ve dizeler her zaman çift tırnak içine alınır. C dilinde karakterler tek tırnak içine alınır. Her ikisinden de bazı örnekler aşağıda gösterilmiştir;
C Karakterlerinin ve Dizelerinin Örneği veya Temsili
- char string[10] = { 's','d','f','d','t','j','a','\0' };
- char string[10]=” daha taze”;
- char string[]=” daha taze”;
Yukarıdaki ifadelerin her ikisinde de dizelerin bildirimleri arasında küçük bir fark vardır. char'ı string[10] olarak ilan ettiğimizde olduğu gibi, 10 baytlık hafıza alanı stringin 10 değerini tutmak için ayrılırken, onu string[] gibi ilan ettiğimizde programın yürütülmesi sırasında hafıza tahsis edilir.
İçindekiler
Dize Bildirimi ve Başlatma
C programlamada, diziler yukarıda gösterildiği gibi iki şekilde bildirilebilir. C programlamada, bir dize, boş veya '\0' karakteriyle sonlandırılan bir karakter dizisidir. Aşağıda buna benzer bir örnek verilmiştir:
char temp[]=”geçici dizi”;
Çift tırnak içine alınmış char türünde bir karakter dizisi bildirildiğinde, dizenin sonuna otomatik olarak \0 eklenir. Örneğin:

char temp[]=”geçici dizi”;
T | e | m | P | s | T | r | i | n | G | \0 |
dize bildirimi
C dilinde bir dize aşağıdaki şekilde bildirilir:
karakter sıcaklığı[5];
s[0] s[1] s[2] s[3] s[4]
Bu şekilde, 5 uzunluğunda bir dize başlatabiliriz.
Dize Başlatma
Dize başlatma birçok şekilde yapılabilir ve bunlardan bazıları aşağıda verilmiştir:
char t[]=”geçici dizi”;
char t[10]=”geçici dizi”;
char t[]={'t','e','m', 'd','\0'};
char t[5]={'t','e','m', 'd','\0'};
T | e | m | P | \0 |
t[0] t[1] t[2] t[3] t[4]
Yukarıdaki bildirim türünde, yalnızca dört karakterden oluşan dizeleri saklayabiliriz, bu tür bir dize veya dizide beş karakter saklamak istiyorsanız, daha uzun karakter dizisine ihtiyacınız olabilir.
Okuyun: Java'da Dize Dizisi: Kodlama Örnekleriyle Java Dize Dizisi
Dizelere Değer Atama
Diziler ve dizeler, atama operatörlerini desteklemez. Dizeler bildirildiğinde, değerleri dize türü değişkenlere atayamazsınız. Örneğin C dilinde değerleri şu şekilde yazıp atayamayız:
karakter t[100];
t=” sıcaklık değeri”;
C'de Dize İşleme
Şimdi , C'deki dize işlemeyi oldukça kolaylaştıran bazı popüler dize işlevlerini listeleyeceğiz. Dize üzerinde String okuma, String Kopyalama veya Tersine Çevirme gibi birden çok işlem ve daha birçok işlem bu fonksiyonlar kullanılarak stringler üzerinde kolaylıkla gerçekleştirilebilir.
Dize operatörleri veya dize işlevleri, dizeleri işlemek için doğrudan kullanılabilir. Burada, bu makalede get(), puts(), strlen(), strcopy() gibi kitaplık fonksiyonlarını ve C'de string işlemeyi açıklamak için diğer pek çok fonksiyonu açıklayacağız.
Bazen programcılar, gerekli probleme göre onları manipüle etmek için string fonksiyonlarını yazmak zorunda kalırlar. Bununla birlikte, dizi manipülasyonu manuel olarak yapılabilir, ancak bu, programlamayı oldukça karmaşık ve büyük hale getirebilir.
C'de "string.h" olarak bilinen standart bir string fonksiyonları kütüphanesi vardır. “.h” uzantılı bu başlık dosyası, farklı sözdizimine sahip birçok dize işleme işlevine sahiptir. Bu makalenin aşağıdaki bölümünde bunlardan birkaçını tartışacağız:
C'deki bazı Ortak Dize İşleme İşlevlerinin Listesi
İşlev | Tanım |
strlen() | Dizenin uzunluğunu hesaplayabilir |
Strcpy() | Bir dizenin içeriğini diğerine kopyalayabilir |
Strcat() | İki diziyi birleştirmek veya birleştirmek için kullanılır |
Strcmp() | İki dizeyi karşılaştırabilir |
strlwr() | Dizeyi küçük harfe dönüştürebilir |
Strupr() | Dize harflerini büyük harfe dönüştürmek için kullanılır |
Strev() | Dizeyi tersine çevirmek için kullanılır |
Programınızda dize işleme işlevlerinden herhangi birini kullanmanız gerektiğinde, işlevler yalnızca bunlarla sınırlı değildir. Başka birçok işlevi de vardır. Öyleyse, onları tartışalım:
1) koyar() ve alır()
Dize başlık dosyasının iki popüler işlevi, kullanıcıdan girdi almak ve sırasıyla dizeyi görüntülemek için kullanılır. Bu işlevlerin her ikisi de string.h dosyasında tanımlanmıştır. Bu işlevlere bir örnek görelim:
#include ana()
Int ana()
{
karakter sıcaklığı[20];
printf(“Adınızı Giriniz”);
alır(sıcaklık);
printf(“Benim Adım: ”);
koyar(sıcaklık);
0 döndür;
}
2) strcat()
Bir dizenin başka bir dizenin sonuna eklenmesi gerektiği durumlarda bu işlev kullanılır. strcat işlevi, hedef dizenin sonuna kaynak dizenin bir kopyasını ekleyebilir. Kullanıcının aşağıda açıklanan iki bağımsız değişkeni iletmesi gerekir:

i) kaynak
ii) hedef
Burada "src" dizgesinin yeri belirtilirken, "hedef" yerine kaynak dizgiyi eklememiz gereken hedef dizge belirtilir.
Örnek vermek
#include<string.h>
int ana()
{
char src[20]= “önce”;
char hedef[20]= “sonra”;
strcat(hedef, kaynak);
koyar(hedef);
0 döndür;
}
Çıktı olacaktır: önce sonra
3) işlev strlen()
Dizeler için doğrudan kullanılabilecek dize başlık dosyasının bir işlevi daha strlen() işlevidir. Herhangi bir dizenin uzunluğunu bulmanız gerektiğinde, C'deki dize işlevi olan strlen() işlevini kullanabilirsiniz . Bununla birlikte, herhangi bir dizenin uzunluğunu bulmak için manuel olarak bir program da yazılabilir, ancak bu doğrudan işlevin kullanılması zaman kazandırabilir ve örnek aşağıda verilmiştir:
#include<stdio.h>
int ana()
{
int uzunluk;
char s[20] = “Biz Buradayız”;
uzunluk=strlen(ler);
printf(“\Dizenin uzunluğu = %d \n”, uzunluk);
0 döndür;
}
Dizinin uzunluğu = 11
4) işlev strcpy()
Bir dizgenin içeriğini başka bir dizgeye kopyalamanız gerekiyorsa, bu işlev kullanılıyor demektir. İşlevin sözdizimi strcpy(hedef,kaynak) şeklindedir. İşlev, bir dizenin içeriğini diğerine kopyalayabilir. Fonksiyonun bir örneği aşağıda verilmiştir:
#include<string.h>
int ana()
{
char src[20]= “ Hedef”;
karakter hedef[20]= “”;
printf(“\n kaynak dize = %s”, kaynak);
printf(“\n hedef dizi = %s”, hedef);
strcpy(hedef, kaynak);
printf (“\ntarget string'den sonra strcpy() = %s”, hedef);
0 döndür;
}
Çıktı
Kaynak dizesi = Hedef
Hedef dize =
strcpy() = Hedeften sonraki hedef dize
Öğrenin: StringBuffer ve StringBuilder: StringBuffer ve StringBuilder Arasındaki Fark
5) işlev strcmp()
Aynı olup olmadıklarını anlamak için iki diziyi karşılaştırmak için strcmp() işlevini kullanabiliriz. İşlev, 0, >0 veya <0 olabilen kesin bir değer döndürür. Bu işlevde, iletilen iki değer büyük/küçük harfe duyarlı olarak kabul edilir, 'A' ve 'a' farklı harfler olarak kabul edilir. İşlev tarafından döndürülen değerler şu şekilde kullanılır:
i) İki dize aynı olduğunda 0 döndürülür
ii) str1<str2 ise, negatif bir değer döndürülür
iii) str1>str2 ise pozitif bir değer döndürülür
Örnek vermek:
#include<stdio.h>
#include<string.h>
int ana()
{
char str1[]=”kopyala”;
char str2[]=”Kupa”;
int ı,j,k;
i=strcmp(str1, “kopyala”);
j=strcmp(str1, str2);
k-strcmp(str1, “f”);
printf(“\n %d %d %d”,I,j,k);
0 döndür;
}
Çıkış: 0 -1 1
6) Fonksiyonlar strlwr() / strupr()
Bazen herhangi bir dizenin küçük harflerini büyük harfe veya tam tersine çevirmeniz gerekebilir. Bu amaçla , C'de iki doğrudan dize işlevi vardır , bunlar büyük harften küçük harfe veya tam tersi dönüşümleri gerçekleştirmek için kullanılabilir. Burada da aynısının bir örneğini açıkladık:
#include<stdio.h>
#include<string.h>
int ana()
{
char str[]=”Beni Küçük Harfe DÖNÜŞTÜR”;
printf(“%s\n”, strlwr(str));
0 döndür;
}
Çıktı: beni küçük harfe dönüştür
Benzer şekilde, strlwr yerine strupr işlevini kullanırsak, tüm içerik büyük harflere dönüştürülür. String başlık dosyasında tanımlanan strupr fonksiyonunu kullanabiliriz. Bu fonksiyon aracılığıyla, uzun bir manuel prosedür olmaksızın, dizenin tüm harfleri dönüştürülür.
7) işlev strrev()
Herhangi bir dizgiyi manuel olarak büyük veya kapsamlı bir program yazmadan tersine çevirmek istiyorsanız, bu işlevi kullanabilirsiniz. strrev() işlevi, dizenin içeriğini tersine çevirmek için kullanılır. Strev işlevi, verilen dizenin bir palindrom olup olmadığını, dizenin yapısını kontrol etmek için kullanılır. Dizi ters fonksiyonunun başka birçok kullanımı ve uygulaması da mevcuttur. Kullanımlarından biri aşağıda verilmiştir:
#include<stdio.h>
#include<string.h>
int ana()
{
char temp[20]=”Ters”;
printf(“Geri çevirmeden önceki dizge : %s\n”, temp);
printf(“strrev() :%s’den sonraki dize”, strrev(temp));
0 döndür;
}

Amaca Yönelik Bazı Dize İşleme İşlevleri:
Daha önce de söylediğimiz gibi, C'de daha fazla dizge işlevi vardır. C'de dizge işleme için yaygın olarak kullanılan diğer bazı işlevler şunlardır:
İşlev | Amaç |
strchr() | str1'deki ilk char oluşumuna bir işaretçi döndürür |
strdup() | Dizeyi çoğaltabilir |
strset() | Bir dizenin tüm karakterlerini verilen karaktere ayarlar |
strrchr() | İlk işaret eden karakterin oluşumunu bulmak için kullanılır |
Ayrıca Okuyun: Java'da Tarayıcı Sınıfı: Yapıcı Türleri ve Yöntemler, Nasıl Kullanılır
Son sözler
Tıpkı diğer tüm C dillerinde olduğu gibi, kullanıma hazır veya yerleşik işlevlerden oluşan geniş bir kütüphaneye sahiptir. Herhangi bir karakter dizisini işlemek için bu işlevleri doğrudan kullanabilirsiniz. Ancak işlevler bunlarla sınırlı değildir. Başlık dosyasında C'de başka birçok dize işlevi vardır . Bunların en büyük faydası, kodlamanın süresini ve uzunluğunu azaltmaktır.
Java, OOP'ler ve tam yığın yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500 saatten fazla sıkı eğitim sunan Tam Yığın Yazılım Geliştirme PG Diplomasına göz atın, 9 + projeler ve görevler, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.