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_ornek00020

C örnek kodlar

Bir karakter dizisinde belirli bir karakteri değiştirme

Program, bir karakter dizisinde belirli bir karakteri 2 farklı fonksiyon kullanarak değiştirir ve elde edilen karakter dizilerini ekrana yazar. İlk fonksiyonda strchr() fonksiyonu kullanır. İkinci fonksiyonda ise karakterleri tek tek tarayarak işlem yapar.


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

char* bg_replace_chr01(const char *str, char find, char replace);
char* bg_replace_chr02(const char *str, char find, char replace);

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

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

  printf("%s\n", cdizi);

  char* substr =  bg_replace_chr01(cdizi, 'a', 'e');
  printf("%s\n", substr);

  substr =  bg_replace_chr02(cdizi, 'i', 'e');
  printf("%s\n", substr);

  free(substr);

  return 0;
}

// Karakter dizi içinde belirli bir karakteri değiştirme (strchr() fonksiyonu ile)
char* bg_replace_chr01(const char *str, char find, char replace)
{
  char *gstr = malloc (strlen(str)+1);
  char *pos = gstr;

  strcpy(gstr, str);

  while ((pos = strchr(pos, find)) != NULL){
     *pos = replace;
  }

  return gstr;
}

// Karakter dizi içinde belirli bir karakteri değiştirme (Karakterleri tek tek tarayarak)
char* bg_replace_chr02(const char *str, char find, char replace)
{
  char *gstr = malloc (strlen(str)+1);
  char *pos = gstr;

  strcpy(gstr, str);

  while(*pos != '\0') {
    if(*pos == find) *pos = replace;
    pos++;
  }

  return gstr;
}

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

Karakter dizisi içinde işlem
Kerekter dizisi içinde işlem
Karakter dezese eçende eşlem