Herkese merhaba , önceki yazımda c ile char veri tipini görmüştük.Bu yazıda ise string manipülasyonu yapan birkaç fonksiyondan bahsedeceğiz.
strcat()
İlk fonksiyonumuz strcat(contcatenates).Strcat iki char tipindeki değişkeni birleştirmeye yarar.2 tane parametre alır.Hedef ve kaynak.
char *strcat(char *destination, const char *source)
Strcat () fonksiyonu, hedef string’i ve kaynak stringini birleştirir ve sonuç hedef değişkeninde saklanır.
Hemen örnekle görelim.
#include <stdio.h>
#include "string.h"
int main() {
char str1[50] = "My name is", str2[] = "metin";
strcat(str1,str2);
puts(str1);
puts(str2);
return 0;
}
Sonuç
My name ismetin metin
Dikkat etmemiz gereken nokta arkadaşlar birleştirilen string 1. parametrede kalmaktadır.
2. nokta ise strcat() , destionation string yan 1. parametrenin boyutu source stringini saklayacak kadar büyük olmalıdır. Değilse, segmentasyon hatası hatası alırsınız.
C strcmp()
Diğer göreceğiniz fonksiyon string compare, parametre olarak verilen 2 string karşılaştırır.Eğer birbirleri ile aynı ise 0 döndürür.
int strcmp (const char* str1, const char* str2);
Strcmp () işlevi iki char değişken alır ve geriye integer döndürür.
İki stringin ilk karakteri eşitse, iki stringin de sonraki karakteri karşılaştırılır. Bu işem iki string değerin karakterleri birbirleri ile farklı olana veya boş bir ‘\ 0’ karakterine ulaşılana kadar devam eder.
Hemen örneğimizi yapalım.
#include <stdio.h>
#include "string.h"
int main() {
char var1[] = "eth0";
char var2[] = "eth0";
char var3[] = "wan";
//comparing var1 and var2
if( strcmp(var1,var2) == 0 ) {
printf("These variables are same \n");
}
//comparing var1 and var3
if( strcmp(var1,var3) != 0 ) {
printf("These variables are not same \n");
}
}
Sonuç
These variables are same These variables are not same
C strcpy()
String copy fonksiyonu olan strcpy() fonksiyonuna göz atalım.Fonksiyon strcat gibi önce char tipnide destionation sonrada source parametresi alıyor.
char* strcpy(char* destination, const char* source);
Strcpy () foksiyonu, source parametresi ile gelen string’i (boş karakter dahil) destination değişkenine kopyalar.
#include <stdio.h>
#include "string.h"
int main() {
char str1[20] = "PHP";
char str2[15];
strcpy(str2,str1);
puts(str2);
return 0;
}
Çıktı
PHP
Gördüğümüz gibi başta boş olan str2 değişkeni copy komutundan sonra ekrana kopyalandığı değeri veriyor.
C strlen()
Son göreceğimiz fonksiyon ise string length fonksiyonu.bu fonksiyon parametre olarak verilen string değerin uzunluğunu unsigned size_t olarak geri döner.
#include <stdio.h>
#include "string.h"
int main() {
char var1[20]="C programming";
char var2[20]={'P','r','o','g','r','a','m','\0'};
int len = strlen(var1);
// using the %zu format specifier to print size_t
printf("Length of string var1 = %zu \n",strlen(var1));
printf("Length of string var2 = %zu \n",strlen(var2));
return 0;
}
Çıktı
Length of string var1 = 13
Length of string var2 = 13
Strlen () fonksiyonunun uzunluğu hesaplarken \0 null karakterini saymadığını unutmayın.Bu kısmını kullanıcdan soyutlar.
Not: bu yazıda ele aldığımız fonksiyonlar <string.h> içerisinde tanımlıdır.Kullandığımız kodlarda bunu include ettiğimize dikakt edin.
Teşekkürler…