Hepimizin bildiği gibi, atoi
bir char'i bir sayıya dönüştürür. Ancak, tüm dizi yerine yalnızca dizi elemanlardan birini istiyorsanız, ne yaparsınız?Bir char dizisinin tek tek elemanlarını atamak için atoi'yi nasıl kullanıyorsunuz?
aşağıdaki bakınız:
for (h = 0; h < 5; h++)
{
num[h] = atoi(temp[h]);
}
o num varsayalım tip int
bir dizidir ve bu geçici ve tip char
dizisi. Bu bana bu can sıkıcı dönüşüm sorunlardan biri verir: 'const char *' için 'Char'
den
geçersiz dönüşüm int bir char dizinin tek bir elemanını dönüştürmek konusunda herhangi bir öneriniz atoi kullanarak?
C'deif (temp[h] >= '0' && temp[h] <= '9') { num[h] = temp[h] - '0'; } else { // handle error: character was not a digit }
, her hanenin değeri bir önceki sayının değerine birden büyüktür, bu nedenle bu: Yalnızca tek bir karakteri dönüştürmek istiyorsanız
Tamam ... Sana atoi kullanarak dönüştürmek için gerekli düşünce(). Teşekkürler. –
@kriss: Noktalı virgül için teşekkürler! Hata! –
C, karakter kodlamasını tanımlamaz, bu nedenle "çalışmak için" garanti edilmez. Karakter kodlamasının ASCII olduğunu varsayıyorsunuz (ya da istenen özelliğe sahip), ki bu belki de makul bir varsayımdır, ancak bunun bir varsayım olduğunu bilmek önemlidir, bir garanti değildir. – user85509