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

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

C örnek kodlar

Bir karakter dizisindeki belirli bir karakteri silme

Program, bir karakter dizisindeki belirli bir karakteri 2 farklı fonksiyon kullanarak siler ve elde edilen karakter dizilerini ekrana yazar. İlk fonksiyonda işaretçi indeksleme yöntemi, ikinci fonksiyonda ise doğrudan işaretçileri kullanarak işlem yapar.


#include <stdio.h>
#include <ctype.h>
#include <locale.h>

char* bg_remove_char01(char *str, char ch);
char* bg_remove_char02(char *str, char ch);

int main(void)
{
    char cdizi[] = "Bilgisayar";

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

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

    printf("%s\n", bg_remove_char01(cdizi, 'a'));
    printf("%s\n", bg_remove_char02(cdizi, 'i'));

	return 0;
}

char* bg_remove_char01(char *str, char ch)
{
  int id=0, pos=0;

  while (str[id]) {
    // Boşluk karakterinden farklı ise
    if(str[id]!=ch) {
       // Yeni oluşturulacak dizine ekleme
       str[pos++] = str[id];
    }
    id++;
  }
  str[pos] = '\0';

  return str;
}

char* bg_remove_char02(char *str, char ch)
{
  char *p = str;
  char *pos = str;

  while(*p) {
    // Boşluk karakterinden farklı ise
    if(*p!=ch) *pos++ = *p; // Yeni oluşturulacak dizine ekleme
    p++;
  }
  *pos = '\0';

  return str;
}

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

Bilgisayar
Bilgisyr
Blgsyr