#include<stdio.h>
#include<string.h>
int main() {
int num = 5;
char hi[15] = "15";
strcat(hi, num)
}
任何方式都可以轻松完成此操作?例如,我想将num变成一个字符串并连接它,使它变为155。
答案 0 :(得分:0)
int num = 5;
char buff1[15] = "15";
char buff2[25];
sprintf(buff2, "%s%d", buff1, num);
请务必检查sprintf()的返回值。当然要确保buff2对于buff1和num。的字符串版本都足够大。
答案 1 :(得分:0)
#include<stdio.h>
#include<malloc.h>
#include<string.h>
int findDigits(int n){
int count = 0;
//if it's a single digit
if( (n/10) == 0){
return 1;
}
while(n /= 10){
count++;
}
return count;
}
int main() {
int num = 5;
char hi[15] = "15";
char* buf = NULL;
int digits = findDigits(num);
if(digits > 0){
if( (buf = malloc(digits + 1)) == NULL){
return -1;
}
if( (strlen(hi) + digits) >= sizeof(hi) ){
free(buf);
return -1;
}
sprintf(buf, "%d", num);
strcat(hi ,buf);
free(buf);
printf("%s", hi);
getchar();
}
else{
return -1;
}
return 0;
}