C 编程帮助 Int2String 方法

标签 c string integer

我的 Int2String 方法有问题。我是 C 的新手,所以我不确定这是否是正确的方法。我收到了一些错误消息:

错误:“int2String”的类型冲突 警告:返回从指针生成整数而不进行强制转换

这是我的方法:

char int2String(int num, char intStr[10]) {
char itoa(num, intStr[10]);
return itoa;
}

感谢您的帮助!

最佳答案

在你的代码中

char itoa(num, intStr[10]);
return itoa;

告诉编译器您声明一个名为itoa 的函数,具有特定的签名,然后您想要返回(指向)这个函数 .由于您将返回类型声明为 char,编译器不喜欢这样。

它应该看起来像

char int2String(int num, char intStr[10]) {
  char ch = itoa(num, intStr);
  return ch;
}

调用函数itoa使用给定的参数,将其返回值存储在 char 类型的局部变量中,然后返回它。 (可以内联局部变量以简化代码。)

现在这仍然不能使编译器满意,因为 itoa 虽然不是标准的一部分,但按照惯例声明返回 char*,并取 3参数,而不是 2。(除非您使用非标准定义 if itoa,即。)

对于“标准”itoa 版本,此修改应该有效(至少在理论上 - 我没有测试过:-)

char* int2String(int num, char intStr[10]) {
  return itoa(num, intStr, 10);
}

关于C 编程帮助 Int2String 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3696178/

相关文章:

python - python int 的架构是特定的吗?

c - Double 不在 C 中存储数字(数字太小)

c - 递归树函数?

r - 如何以优先布局对向量进行排序?

string - Direct Oracle Access 截断 unicode(宽)字符串的末尾

java - 无法将字符串转换为 int (Java)

c++ - 整数产生十六进制值错误

c - 如何在C中打开一个进程?

c - 在for循环中声明int数组并在C中更改其元素

c - 将字符串中的数字更改为 int 的函数