将给定基数中的数字转换为小数

时间:2015-11-04 06:32:34

标签: c numbers

  • 参数:number - 您要转换字符串的数字
  • base - 您将numebr转换为
  • 的基数
    • 返回:基数" base"
    • 中的字符串数字
    • 返回类型:char *

这是我的代码,但它无效;

ocrResult = ocrResult.ToLower();
if (ocrResult.Contains("edg") || ocrResult.Contains("gna"))
{
    //no edge or no signal
}

else
{
    //Not no edge or no signal
}

2 个答案:

答案 0 :(得分:2)

问题是您修改了循环中的ans指针,因此当您返回ans时,它不再指向字符串的开头,而是指向应该终止字符串的位置

使用初始化为ans的临时变量,并返回未修改的临时变量。

还应该注意的是,你有内存泄漏,为result分配了内存,但你从来没有free

答案 1 :(得分:1)

您的问题在于将数字转换为文本

尝试添加' 0'的值和' A'正如

那样
  if(result[j]>=10 && result[j]<=24) {
       printf("%c",(result[j]+'A')); 
       *ans++=(result[j]+'A');
  } else {
       printf("%c",(result[j]+'0')); 
       *ans++=(result[j]+'0');
  }

并确保在返回字符串之前将其终止,如

*ans++ = 0;

以及 - 声明

return ans;

将返回字符串的结尾而不是开头 - 所以你必须修复它,并且因为修复你的内存泄漏....