面试题解(五)之联想笔试题

题目:
    设计函数 int atoi(char *s)   
题解: 
  1. #include 
  2. #include 
  3. int main(void){
  4.     char str[]="-100";
  5.     char str1[]="567";
  6.     int c;
  7.     c=atoi(str)+atoi(str1);
  8.     printf("c content is %d/n",c);
  9.     return 0;
  10. }
  11. int atoi(const char *s){
  12.     int len;
  13.     char symbol='+';
  14.     unsigned char *str;
  15.     int v=0;
  16.     
  17.     str=s;
  18.     while(*str==' ')str++;
  19.     if(*str=='+'||*str=='-')
  20.         symbol=*str++;  
  21.     while(isdigit(*str)){
  22.         v=v*10+*str-'0';
  23.         str++;  
  24.     }
  25.     return symbol=='-'?(-1)*v:v;
  26. }
编译环境: 
        gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)

运行过程:
        [explover@Explover 20081101]$ gcc -g atoi.c -o atoi
        atoi.c: In function `atoi':
        atoi.c:18: warning: assignment discards qualifiers from pointer target type
        [explover@Explover 20081101]$ ./atoi
        c content is 467

(本人水平有限,不足之处,请大家多多指正,谢谢!)    

你可能感兴趣的:(面试题解(五)之联想笔试题)