Bir C dizesinin geçerli bir tamsayı olup olmadığını kontrol etmem gerekiyor. C dizesinin geçerli bir int olup olmadığını belirleyin C
Ben bu dizede geçersizliğini belirtmeden, basitçe 8 döndürülen çizgilerin her ikisi de dize"8 -9 10"
gönderme hem
int num=atoi(str);
ve
int res=sscanf(str, "%d", &num);
Ama denedik.
Herkes alternatif önerebilir mi?
'atoi' hata denetimi yapmıyor; str '' int' değerinin bir temsilini içermiyorsa davranışı tanımsızdır. (Tipik uygulamalar '0' döndürür.)' Sscanf' daha iyidir, ancak dizideki değer 'int' olarak gösterilemiyorsa davranışı tanımsızdır. Ayrıca, başlığınız geçerli bir int kontrol etmek istediğinizi belirtiyor, ancak sorunuzun bedeninde "geçerli tamsayı" yazıyor; onlar aynı şey değiller. int * birkaç * tam sayı * türünden biridir. –