Program, bir karakter dizisindeki beyaz boşluk karakterlerini (Boşluk tuşu (' ', 0x20), yeni satır ('\n', 0x0a, LF), yatay tab ('\t', 0x09, TAB), dikey tab ('\v', 0x0b, VT), ENTER tuşu ('\r', 0x0d, CR), besleme ('\f', 0x0c, FF)) 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_space01(char *str);
char* bg_remove_space02(char *str);
int main(void)
{
char cdizi[] = "B i l g i s a y a r";
// Türkçe karakterler için
setlocale(LC_ALL, "Turkish");
printf("%s\n", cdizi);
printf("%s\n", bg_remove_space01(cdizi));
printf("%s\n", bg_remove_space02(cdizi));
return 0;
}
char* bg_remove_space01(char *str)
{
int id=0, pos=0;
while (str[id]) {
// Boşluk karakterinden farklı ise
if(!isspace(str[id])) {
// Yeni oluşturulacak dizine ekleme
str[pos++] = str[id];
}
id++;
}
str[pos] = '\0';
return str;
}
char* bg_remove_space02(char *str)
{
char *p = str;
char *pos = str;
while(*p) {
// Boşluk karakterinden farklı ise
if(!isspace(*p)) *pos++ = *p; // Yeni oluşturulacak dizine ekleme
p++;
}
*pos = '\0';
return str;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
B i l g i s a y a r Bilgisayar Bilgisayar