Algoritma & Programlama Karakter Dizisi(String) İşlemleri
Karakter Dizisi (String) Tanımlama: char a[25]; char* b; Değer Atama: char str[5]={‘Ö’, ‘z’, ‘l’, ‘e’, ‘m’, ‘\0’}; char str[5]=“Özlem”; char str[]=“Özlem”; char *str=“Özlem”;
Karakter Dizisi (String) Klavyeden Değer Atama: scanf (“%s”,str); gets (str); Ekrana Değer Yazdırma: printf (“%s”,str); puts (str);
Karakter Dizisi İşlemleri strcpy strncpy strlen strcmp strcat strchr strrev
strcpy Komutu char * strcpy( char *str1, const char* s); Örnek: #include <stdio.h> #include <conio.h> main(){ char str[10]; char* s; scanf(“%s”, str); strcpy(s, str); printf(“s: %s\n”, s); getch(); }
strncpy Komutu char * strncpy( char *str1, const char* s, int n); s değişkenindeki karakterlerinin ilk n karakterini str1 alanına kopyalar. Örnek: #include <stdio.h> #include <conio.h> main(){ char str[10]; char* s; scanf(“%s”, s); strncpy(str, s, 4); printf(“str: %s\n”, str); getch(); }
strlen Komutu int strlen( const char *str); Örnek: Klavyeden girilen kelimenin kaç karakter olduğunu bulunuz. #include <stdio.h> #include <conio.h> main(){ char* s; int uzunluk; scanf(“%s”, s); uzunluk = strlen(s); printf(“Uzunluk = %d\n”, s); getch(); }
strcmp, strncmp, stricmp int strcmp( const char *str1, const char* str2); str1 ile str2 karakter dizilerini karşılaştırır. Büyük harf ile küçük harf birbirine eşit kabul edilmez. int strncmp( const char *str1, const char* str2, int n); str1 ile str2 karakter dizilerinin ilk n karakterini karşılaştırır. int stricmp( const char *str1, const char* str2); str1 ile str2 karakter dizilerini karşılaştırır. Büyük harf ile küçük harf birbirine eşit kabul edilir.
strcat Komutu char* strcat (char *str1, const char* str2); str2 karakter dizisini str1’in sonuna ekler. Dönüş değeri str1 ve str2’nin birleşimi olan karakter dizisidir. char* strncat (char *str1, const char* str2, int n); str2 karakter dizisinin ilk n karakterini str1’in sonuna ekler.
strchr Komutu char* strchr (const char *str1,int ch); str1 karakter dizisini soldan sağa tarayarak içinde ch karakterinin ilk bulunduğu pozisyondan sonraki karakterleri geri gönderir. char* str=“BİLGİSAYAR”; char* s = strchr(str, ‘S’); char* strrchr (const char *str1,int ch); str1 karakter dizisini sağdan sola tarayarak içinde ch karakterinin ilk bulunduğu pozisyondan sonraki karakterleri geri gönderir. str ‘B’ ‘İ’ ‘L’ ‘G’ ‘S’ ‘A’ ‘Y’ ‘R’ ‘ \0’ s ‘S’ ‘A’ ‘Y’ ‘R’ ‘ \0’
strstr Komutu char* strstr (const char *str1, const char *str2); str1 karakter dizisi içinde str2 karakter dizisini arar. char* str=“BİLGİSAYAR”; char* s = strstr(str, “AY”); str ‘B’ ‘İ’ ‘L’ ‘G’ ‘S’ ‘A’ ‘Y’ ‘R’ ‘ \0’ s ‘A’ ‘Y’ ‘R’ ‘ \0’
strrev Komutu char* strrev (char *str); str karakter dizisini ters çevirir. char* str=“BİLGİSAYAR”; char* s = strrev(str); str ‘B’ ‘İ’ ‘L’ ‘G’ ‘S’ ‘A’ ‘Y’ ‘R’ ‘ \0’ s ‘R’ ‘A’ ‘Y’ ‘S’ ‘İ’ ‘G’ ‘L’ ‘B’ ‘ \0’
Örnekler 1- Ekrandan okunan bir kelimenin strrev fonksiyonu kullanılmadan tersten yazılmasını sağlayan program. 2- Ekrandan okunan bir metin içerisinde kaç tane “a” harfinin olduğunu bulan program. Örnek: Bugün hava çok güzel. Cevap : 2 3-Ekrandan okunan bir metin içerisinde, ekrandan okunan bir harften kaç tane olduğunu bulan program. 4- Şifre olarak girilen bilgi kullanıcının girdiği bilgiye eşitse “Doğru” eşit değilse “Yanlış” yazan program.
Örnekler 5- Ekrandan okunan metindeki a harflerini b harfine dönüştüren program Örneğin: Bugün hava çok güzel. Bugün hbvb çok güzel. 6-Test sınav sonuçlarına göre öğrencinin; Kaç tane doğru Kaç tane yanlış Kaç tane boş bıraktığını bulan program Örnek: öğrencinin cevabı : AA B BCACCD cevap anahtarı : ADDCDBCACB 6 doğru, 3 yanlış, 1 boş
Örnekler 7-Ekrandan okunan bir metin içerisinde kaç tane “ve” kelimesinin olduğunu bulan program. Örnek: Veli ve Vedat bugün okula gelmedi.
ctype.h İçerisindeki Fonksiyonlar toupper: Harfleri büyük harfe dönüştürür. tolower: Harfleri küçük harfe dönüştürür. islower: Karakterin küçük harf olması durumunda doğru değer döndürür. isupper: Karakterin büyük harf olması durumunda doğru değer döndürür. isalnum: Karakterin harf veya rakam olması durumunda doğru değer döndürür. isspace:Karakterin boşluk olması durumunda doğru değer döndürür. isalpha: Karakterin harf olması durumunda doğru değer döndürür. isdigit: Karakterin rakam olması durumunda doğru değer döndürür.
toupper- tolower Örnek: Girilen kelimeyi büyük harfe çeviren program. char *str; printf("Kelime:"); gets(str); for (int i=0;i<strlen(str);i++){ str[i]=toupper(str[i]); } printf(“Büyük harfli kelime:%s\n",str); Örnek: Girilen kelimenin büyük harflerle mi küçük harflerle mi yazıldığını belirleyen program.
stdlib.h’daki String Dönüşüm Fonksiyonları atof atoi atol itoa ltoa string.h’daki String Dönüşüm Fonksiyonları strtod strtol