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