本文介绍了隐蔽ASCII转换为int w/o atoi的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

即使我将输入的字符串值更改为ascii_to_int,我在输出中也得到689的恒定结果:

I am getting a constant result of 689 in the output even if i change the string values input into ascii_to_int:

#include<stdio.h>
#include<conio.h>

int ascii_to_int(unsigned char *s);

void main()
{
    clrscr();
    ascii_to_int("ATOI");
    printf("%d",ascii_to_int);
    getch();
}

int ascii_to_int(unsigned char *s)
{
     int value=0;
     while(*s>'0' && *s<'9')
     {
       value= value*10 + (*s-0);
       s++;
     }
     return value;
}



我做错了什么?

[修改:只需将<和>. &在& lt;已被更改为& amp; lt;]



What am I doing incorrectly?

[Modified: just fixed a < and >. The & in &lt; had been changed to &amp;lt;]

推荐答案



#include <stdio.h>

int ascii_to_int(const char *s);

void main()
{
  printf("%d",ascii_to_int( "0101"));
  getchar();
}

int ascii_to_int(const char *s)
{
  int value=0;
  while(*s>='0' && *s<='9')
  {
    value = value * 10 + (*s-'0');
    s++;
  }
  return value;
}


这篇关于隐蔽ASCII转换为int w/o atoi的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-31 06:57