【发布时间】:2015-07-08 07:18:59
【问题描述】:
我有一个包含 12 个字符的字符串,并且想将其转换为 int 或者我们可以说 digit ,但无法做到。我编写了一个将字符串转换为 11 位数字的代码,但之后它开始提供垃圾值。 我的代码是这样的
#include<stdio.h>
double myAtoi(char *str);
void main()
{
double n;
double m;
char* a="12345678912";
char* b="34";
n=myAtoi(a);
//m=atoi(b);
printf("\nconversion is : %d",(n));
}
double myAtoi(char *str)
{
printf("\nstr : %s",str);
long res = 0; // Initialize result
long i ;
// Iterate through all characters of input string and update result
for (i = 0; str[i] != '\0'; ++i)
{
res = res*10 + str[i] - '0';
printf("\n res : %d",res);
//x=res;
}
return res;
}
【问题讨论】:
-
C++ 的答案将完全不同。你确定你想要那些吗?如果不是,那么 c++ 与这个问题有什么关系?
-
请缩进您的代码。
-
我怀疑您的意思是
return res;,因为该代码中没有任何名为“x”的东西。而且你的printf格式字符串是错误的,所以即使你修复它,你也可能会打印垃圾。 -
@Aniket Amrutkar 你的问题解决了吗?
-
是的.. @ameyCU 给了我正确的答案..