Yapısal Veri Türleri 2- Dizgi (string) Bölüm 7 Yapısal Veri Türleri 2- Dizgi (string)
Tanım ANSI C dizgisi (string) bir karakter dizisidir (array of characters) Örnek dizgi tanımları: #define UYARI_DIZGISI “Veri giris hatasi” #define DIZGI_BOYU 20 ... char dizgi[DIZGI_BOYU]; char bolum[DIZGI_BOYU] = “Bilgisayar”;
Dizgi Bellek Görünümü - 1 char bolum[DIZGI_BOYU] = “Resim ve Heykel”; [0] [1] [5] [14] [15] [19] R e s i m v e H e y k e l \0 ? ? ? ? NULL
Dizgi Bellek Görünümü - 2 char bolum[DIZGI_BOYU] = “Bilgisayar Muh. Bol.”; [0] [1] [5] [14] [15] [19] B i l g i s a y a r M u h . B o l . ?
Dizgi Dizisi (Array of Strings) char <dizgi dizisinin adı> [dizgi uzunluğu] [dizi boyu] char dersler [4][7] = {“Bil131”, “Bil137”, “Bil191”, “Mat123”};
Dizgi Çıktısı (String Output) printf (“Ders : %s\n”, dersler[0]); Ders : Bil131 ... printf(“%8s dersi...\n”, dersler[1]); █ █ Bil137 dersi... printf(“%-8s dersi...\n”, dersler[1]); Bil137 █ █ dersi...
Dizgi Girişi (String Input) char bolumAdi[DIZGI_BOYU]; char dersAdi[DIZGI_BOYU]; ... printf(“Bolum ve ders adini giriniz : ”); scanf(“%s”, bolumAdi); gets(dersAdi); printf(“%s bolumu, %s dersi\n”, bolumAdi, dersAdi);
Dizgiye Değer Atama char bolumAdi[DIZGI_BOYU]; ... bolumAdi = “Bilgisayar Muh.”; /* Derleme Hatası */ strcpy(bolumAdi, “Bilgisayar Muh.”); char *strcpy(char *dest, const char *src);
Çok Kullanılan string.h İşlevleri char *strcpy(char *dest, const char *source) char *strncpy(char *dest, const char *source, size_t n) char *strcat(char *dest, const char *source) char *strncat(char *dest, const char *source, size_t n) int strcmp(const char *s1, const char *s2) int strncmp(const char *s1, const char *s2, size_t n) size_t strlen(const char *s) char *strtok(const char *source, const char *delim)
Bazı Giriş-Çıkış İşlevleri (stdio.h ) char *gets(char *s) int getchar(void) int getc(FILE *stream) int puts(const char *s) int putchar(int c) int putc(int c, FILE *stream)
Bazı Karakter İşlevleri (ctype.h) Genel Tanım : int <işlev adı> (int c) İşlevler: isalnum, isalpha, isdigit, islower, isupper, isprint, ispunct, isspace, tolower, toupper
Dizgi Biçimlendirme (sprintf) int sprintf( char *buffer, const char *format [, <argument list>] ) char tarih[DIZGI_BOYU]; int gun, ay, yil; ... sprintf(tarih, “%2d/%2d/%4d”, gun, ay, yil); /* tarih[10]’e NULL aktarılır */