爲了學術目的,我必須構建自己的atoi()和scanf()函數。構建我自己的scanf函數
第一個很簡單,但我在第二個中遇到了麻煩。
第一招:
int String2Inteiro (char s[])
{
int j;
int i=0;
for(j=0; s[j]!= 0; j++)
{
i=i*10 + s[j] - '0';
}
return i;
}
現在,在第二個我有一些問題,我認爲這都涉及到停止條件。 我的第一次嘗試是在Cicle後試圖停止。
char dig;
int cont=0;
do
{
dig=getchar();
array[cont]=dig;
cont++;
} while (dig!= '\n');
的第二次嘗試:
int counter=0;
char a;
char array[20];
while (a!='\n')
{
a=getchar();
vec[counter]=a;
counter=counter+1;
}
我不知道如果進入得到很好的體現,或者我應該有使用「\ 13」(CR ASCII碼)。
由於提前,
安德烈
你測試在將數據添加到數組後是否已達到停止字符。 – Barmar 2014-09-20 20:05:05
是的,'\ n''是正確的。但是這應該實現哪個轉換說明符? – mafso 2014-09-20 20:05:28
作爲一個說明,不可能以嚴格符合的方式實現'scanf'(不使用任何'* scanf'系列函數)。無法獲得其推回行爲(但是,「ungetc」應該用於練習目的)。 – mafso 2014-09-20 20:07:27