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

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

C örnek kodlar

Bir karakter dizisindeki beyaz boşluk karakterlerini silme

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