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_is_int

C örnek kodlar

Bir karakter dizisi içeriğinin integer bir sayı olup olmadığını kontrol etme

Bir karakter dizisi içeriğinin integer bir sayı olup olmadığını kontrol etmek için, dizi içindeki her bir karakteri ayrı ayrı kontrol etmek gerekir.

Aşağıdaki program, is_int() fonksiyonunu kullanarak, ilk karakter - veya + ise bir sonraki karaktere geçer. Sonraki karakterlerin ondalık sayı sistemindeki bir rakama (0-9) eşit olduğunu ve karakter dizisinin son karakterinin '\0' karakteri olduğunu kontrol eder. Tüm kontroller olumlu ise, 1 değerini değilse 0 değerini geri döndürür.


#include <stdio.h>

int is_int(char str[]);

int main(void)
{
  char cdizi1[] = "426587";
  char cdizi2[] = "735.124";
  char cdizi3[] = "3 7648";

  printf("%s int bir değer %s.\n", cdizi1, is_int(cdizi1) ? "içerir" : "içermez");
  printf("%s int bir değer %s.\n", cdizi2, is_int(cdizi2) ? "içerir" : "içermez");
  printf("%s int bir değer %s.", cdizi3, is_int(cdizi3) ? "içerir" : "içermez");

  return 0;
}

int is_int(char str[])
{
  int i = 0;

  // Başlangıçta işaret kontrolü
  if(str[i] == '-' || str[i] == '+') {
     i++;
  }

  while (str[i] != '\0') {
    if(str[i]<48 || str[i]>57) {
       return 0;
    }
    i++;
  }

  // Dizinin sonunda null karakteri kontrol etme
  if(str[i] == '\0') {
     return 1;
  }
  else {
     return 0;
  }
}

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

426587 int bir değer içerir.
735.124 int bir değer içermez.
3 7648 int bir değer içermez.