本文介绍了隐蔽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 < had been changed to &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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!