【问题标题】:how to concatenate an integer and a string from an array如何连接数组中的整数和字符串
【发布时间】:2017-05-25 17:27:11
【问题描述】:

我有一个整数数组和一个字符数组。

int A[5] = {12, 23, 12, 32, 12};
char B[5] = {'a', 'e', 'd', 'y', 'i'};

我想将两者按顺序连接成一个名为

的新数组
char P[5]; 

我想输出为

p[5] =  {12a, 23e, 12d, 32y, 56i}

到目前为止,我尝试使用 snprintf,但它遇到了段错误并中止陷阱 6。有没有更简单的方法来做到这一点?

【问题讨论】:

  • 1) [4] --> [5] 2) char P[4]; --> char *P[5];
  • 您需要在 A、B 和 P 的数组声明中使用 [5],因为每个将存储五个元素。 snprintf 可能是不使用非标准库的最简单的解决方案。您的数组大小可能是您的段错误的原因吗?
  • @user234461 : 不确定,你能不能写一个小函数来帮助我
  • 点赞this
  • @BLUEPIXY 美丽!!!

标签: c arrays concatenation type-conversion


【解决方案1】:

你不能有一个char 数组在每个索引处存储像'12e' 这样的值,你需要一个二维字符数组(它是一个字符串数组)。可以使用sprintf进行数据类型转换。

int A[5] = {12, 23, 12, 32, 12};
char B[5] = {'a', 'e', 'd', 'y', 'i'};
char P[5][15];
int i = 0;
for(i = 0; i < 5; ++i)
{
    sprintf(P[i], "%d%c",A[i],B[i]);
    printf("%s ",P[i]);
}

输出:12a 23e 12d 32y 12i

【讨论】:

  • 如果要简化,将for循环中的前4行替换为sprintf(P[i],"%d%c",A[i], B[i]);
  • 这很酷。相应地更新了我的答案。谢谢贾斯汀。
猜你喜欢
  • 1970-01-01
  • 2022-08-06
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 2012-07-18
  • 2016-04-15
  • 2021-05-31
相关资源
最近更新 更多