Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
C Programlama

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C örnek kodlar > c_ornek00019

C örnek kodlar

Bir karakter dizisinde belirli bir karaktere kadar olan karakterleri alma ve ekrana yazma

Program, bir karakter dizisinde belirli bir karaktere olan karakterleri 2 farklı fonksiyon kullanarak ekrana yazar. Karakter dizisi içindeki belirli karaktere kadar olan karakter sayısını bulmak için ilk fonksiyonda strchr() fonksiyonu, ikinci fonksiyonda ise strcspn() fonksiyonu kullanılır.


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>

char* bg_substr_tochar01(const char *src, char ch);
char* bg_substr_tochar02(const char *src, char ch);

int main(void)
{
  char cdizi[] = "Karakter dizisi içinde<işlem";

  // Türkçe karakterler için
  setlocale(LC_ALL, "Turkish");

  char* substr = bg_substr_tochar01(cdizi, '<');
  printf("%s\n", substr);

  substr = bg_substr_tochar02(cdizi, '<');
  printf("%s\n", substr);

  free(substr);

  return 0;
}

// Karakter dizi içinde belirli bir karaktere kadar olan değerleri okuma
char* bg_substr_tochar01(const char *src, char ch)
{
  char *gdizi;
  int pos = strchr(src, ch)-src; // ch değerine kadar olan karakter sayısı

  gdizi = malloc(pos+1);         // Okunacak karakter sayısı kadar bellek tahsisi

  sprintf(gdizi, "%.*s", pos, src);

  return gdizi;
}

// Karakter dizi içinde belirli bir karaktere kadar olan değerleri okuma
char* bg_substr_tochar02(const char *src, char ch)
{
  char *gdizi;
  int pos = strcspn(src, &ch); // ch değerine kadar olan karakter sayısı

  gdizi = malloc(pos+1);       // Okunacak karakter sayısı kadar bellek tahsisi

  sprintf(gdizi, "%.*s", pos, src);

  return gdizi;
}

Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:

Karakter dizisi içinde
Karakter dizisi içinde