问答题
设计一Pascal或C语言的函数atoi(X),其中X为字符串,由0~9十个数字符和表示正负数的""组成,返回值为整型数值。 【浙江大学1994二(7分)】
【正确答案】正确答案:设字符串存于字符数组X中,若转换后的数是负数,字符串的第一个字符必为"-"。转换过程如下:将取出的数字字符减去字符零("0")的ASCII值,变成数;先前取出的数乘10加上本次转换的数形成部分结果;如此一个字符一个字符地转换,直到字符串结束,得到结果。核心语句段如下: if(X([0]!="-"t)rtLIIll=x[01一-0; //如是正数,x[o]是数字字符初值num=0 while(x[i]!="\0") //初值i=1,当字符串未到尾,进行数的转换 rlum:10*IluItl+(x[i++]"0"); //先前取出的数乘10加本次转换的数形成部分结果 if(x[0]=="-")return(一num); //如是负数,x[0]是负号 else return(num); //返回正数
【答案解析】