我有4个变量
unsigned r1 = 255, r2 = 204, r3 = 0, r4 = 255;
我需要将它们作为字符串“(255,204,0,255)”
返回我不知道如何将整数值添加到char *
答案 0 :(得分:1)
您可以使用sprintf
:
char str[50];
sprintf(str, "(%d, %d, %d, %d)", r1, r2, r3, r4);
现在字符串str
包含字符串(255, 204, 0, 255)
。
答案 1 :(得分:-1)
您应在问题中提及您无法使用sprintf
。如果您在创建问题时忘记了,请稍后再提及。我建议你更新你的问题。但是,这是一个没有sprintf
#include <stdio.h>
#include <stdlib.h>
int convert(unsigned char number, char* str){
static int k = 1; // static int is important
int i = k, j;
char temp;
if (number == 0){ // handling of 0
str[k++] = '0';
str[k++] = ',';
return k - 1;
}
while(number){
str[k++] = "0123456789ABCDEF"[number % 10]; // get reversed output
number = number / 10;
}
for (j = k - 1; i < j; i++, j--){ // reversing back the string
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
str[k++] = ',';
return k - 1;
}
int main(){
unsigned char r = 255;
unsigned char g = 221;
unsigned char b = 0;
unsigned char a = 245;
char color[20] = {0}; // always initialize all with 0
int last;
color[0] = '(';
convert(r, color);
convert(g, color);
convert(b, color);
last = convert(a, color);
color[last] = ')';
printf("%s\n", color);
return 0;
}
如果您在C++