是否有适当的方法将整数放入字符串? [C]

问题描述 投票:1回答:2

我有这样的代码:

char str[100];
int r = 0;
for(int k = 0; k < i;k++){
    str[r++] = y[k];
    sprintf(str[r], str, x[k]);
    r++;
}

我要在[[array y]中>]我只有字母字符(例如C,D ...),在array x中我只有数字。我想制作类似“ C50D80E20”之类的字符串。”但是我不知道如何将整数插入字符串中(我知道我使用sprintf错误,并且在这种情况下也不应该使用它)。谢谢。

我有这样的代码:char str [100];整数r = 0; for(int k = 0; k

您在这里。

#include <stdio.h> int main(void) { enum { N = 100 }; char s[N]; char a[] = "CDE"; int b[] = { 50, 80, 20 }; int pos = 0; for ( size_t i = 0; i + 1 < sizeof( a ); i++ ) { pos += sprintf( s + pos, "%c%d", a[i], b[i] ); } s[pos] = '\0'; puts( s ); return 0; }

程序输出为

C50D80E20

此声明

s[pos] = '\0';

仅在没有值要附加到数组s的情况下,即没有执行对sprintf的调用时才需要。

如果您想获得这样的字符串

C50 D80 E20

然后写一个例子

pos += sprintf( s + pos, "%c%d%c", a[i], b[i], ' ' );

并且如果要删除最后一个空格字符,则代替

s[pos] = '\0';

s[ pos == 0 ? pos : pos - 1 ] = '\0';

至于功能itoa,它不是标准的C功能。

使用itoa()。像这样的东西:

itoa(y[k], str[r++], 10);

这里是a link关于itoa()

UPDT:

或作为正确的注释者标记-您可以使用int + '0'
c arrays string integer c-strings
2个回答
2
投票
您在这里。

0
投票
使用itoa()。像这样的东西:
© www.soinside.com 2019 - 2024. All rights reserved.