在 C 中将两个整数连接成一个 char *
concatenate two integers into a char * in C
我现在忘记了我的 C 知识,很难弄清楚如何执行以下操作:
int a = 5; //getting value from a function
int b = 1; //from a function
我想要的是:
char * returnstring = "5:1"; //want to return this
我尝试了以下方法,但没有用。
char astr[5], bstr[5];
sprintf( astr, "%d", a);
sprintf( bstr, "%d", b);
char finstr[100]; //final string
strcpy(finstr, astr);
strcpy(finstr, ":");
strcpy(finstr, bstr);
printf ("%s", finstr);
你可以只用一个 sprintf
:
char str[100];
sprintf(str, "%d:%d", a, b);
改变
strcpy(finstr,astr);
strcpy(finstr, ":");
strcpy(finstr, bstr);
到
strcpy(finstr,astr);
strcat(finstr, ":");
strcat(finstr, bstr);
您将在每次连续调用时覆盖结果字符串。您应该改为使用 strcat
连接到字符串的末尾。虽然这可以通过单个 sprintf
调用轻松完成。
我现在忘记了我的 C 知识,很难弄清楚如何执行以下操作:
int a = 5; //getting value from a function
int b = 1; //from a function
我想要的是:
char * returnstring = "5:1"; //want to return this
我尝试了以下方法,但没有用。
char astr[5], bstr[5];
sprintf( astr, "%d", a);
sprintf( bstr, "%d", b);
char finstr[100]; //final string
strcpy(finstr, astr);
strcpy(finstr, ":");
strcpy(finstr, bstr);
printf ("%s", finstr);
你可以只用一个 sprintf
:
char str[100];
sprintf(str, "%d:%d", a, b);
改变
strcpy(finstr,astr);
strcpy(finstr, ":");
strcpy(finstr, bstr);
到
strcpy(finstr,astr);
strcat(finstr, ":");
strcat(finstr, bstr);
您将在每次连续调用时覆盖结果字符串。您应该改为使用 strcat
连接到字符串的末尾。虽然这可以通过单个 sprintf
调用轻松完成。