P104 将数字字符串转换成长整型整数 ★★

03-程序设计题 软件121, 唐鼎威 1272浏览

所属年份:2011.3;2011.9;
请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用strlen函数求字符串的长度。
例如:在键盘输入字符串2345210,函数返回长整型数2345210。

#include   <stdio.h>
#include   <string.h>
long  fun( char  *s )
{

}
main()
{  char  s[10];    long  r;
   printf("请输入一个长度不超过9个字符的数字字符串 :  ");  gets(s);
   r = fun( s );
   printf(" r = %ld\n" , r );
}

【补充说明】C语言提供了库函数 atoi 来实现字符串转换成整数的功能。 可参考: Standard C 语言标准函数库速查 (Cheat Sheet)

【解题思路】
要把一个数字字符转为相应的数字,只要用它的ASCII码减去48即可。要把数字字符串转为相应的数字,则要从左到右依次取出字符转为相应数字,乘10再加上下一位数字。

【参考答案】

long  fun( char  *s )
{
  int i,sum=0,len;
  len=strlen(s);
  for(i=0;i<len;i++)
  {
     sum=sum*10+*s-48;
     s++;
  }
  return sum;
}