【问题标题】:Conversion of chars and ints in CC中字符和整数的转换
【发布时间】:2014-07-04 19:13:14
【问题描述】:

C 编程。我正在学习C(再次),并且正在制作一些基本程序。这涉及一个获取 int 的函数。该函数使用strcat 将其添加到字符串中。问题是strcat 不接受整数。所以,我的问题很简单,这就是如何将 int 转换为 char。 (我已经用谷歌搜索了它并查看了您的网站。itoa 将无法正常工作抱歉...) 这是我的代码

char total[1000];
strcat(total, "I am");
char buff[1024];
sprintf(buff, "%s %d", total, age);
strcat(total, msg);
printf("%s", total);

【问题讨论】:

  • 请不要使用strcat(),这是不安全的。
  • 什么是替代品?这可以理解吗?
  • strcat 绝不是不安全的。它可能会被不安全地使用。当要求将 N 字节复制到具有
  • @user3477950: strcat 可以完全安全地使用,只要确保目标数组中有足够的空间。

标签: c char integer


【解决方案1】:

您可以使用itoa (int to ascii) 函数。然后将结果与strcat 结合起来得到你的完整字符串。

sprintf(或snprintf)是更好的选择。你根本不需要strcat

像这样:

char buff[1024];
sprintf(buff, "%s %d", your_string, your_int);

【讨论】:

  • itoa 不是标准函数;一些常见的编译器不支持它。
  • @user3553031 这就是我添加sprintf 选项的原因。 :-)
  • 变量buff有什么作用?
  • buff变量起到容器的作用。 sprintf 将保存第二个参数中提供的格式的数据。你可以把它变大或变小。阅读sprintfsnprintf 函数。后者使用起来更安全。
  • @Kaz 但事实并非如此,最好养成使用一般更安全的功能的习惯,即使它们在某些情况下没有任何收获。
猜你喜欢
  • 2015-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2014-03-06
  • 1970-01-01
相关资源
最近更新 更多