我有这样的代码:
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()
。像这样的东西: