1、使用 sprintf(推荐方法)

sprintf 是 C 标准库中的一部分(stdio.h),可以用来将整数格式化为字符串。

#include

int main() {

int num = 123;

char str[20]; // 确保缓冲区足够大以容纳字符串表示

sprintf(str, "%d", num); // 将整数格式化为字符串

printf("转换后的字符串: %s\n", str);

return 0;

}

2、使用 snprintf(比 sprintf 更安全)

snprintf 与 sprintf 类似,但它可以指定输出缓冲区的最大大小,因此更安全,可以避免缓冲区溢出。

#include

int main() {

int num = 123;

char str[20]; // 确保缓冲区大小足够

snprintf(str, sizeof(str), "%d", num); // 安全地将整数格式化为字符串

printf("转换后的字符串: %s\n", str);

return 0;

}

3、使用 itoa一些 C 编译器(如 GCC 或 MSVC)提供非标准的 itoa 函数来将整数转换为字符串。然而,itoa 不是 C 标准的一部分,因此在不同的编译器中不一定可用。

#include

#include // 对于 itoa,如果编译器支持

int main() {

int num = 123;

char str[20]; // 确保缓冲区足够大

itoa(num, str, 10); // 将整数转换为十进制字符串

printf("转换后的字符串: %s\n", str);

return 0;

}

4、循环实现手动转换

可以通过不断提取数字来手动实现转换过程。

#include

void int_to_string(int num, char *str) {

int i = 0;

int is_negative = 0;

if (num == 0) {

str[i++] = '0';

str[i] = '\0';

return;

}

if (num < 0) {

is_negative = 1;

num = -num;

}

while (num) {

str[i++] = (num % 10) + '0'; // 将数字转换为字符

num /= 10;

}

if (is_negative) {

str[i++] = '-';

}

str[i] = '\0';

// 反转字符串

int start = 0;

int end = i - 1;

while (start < end) {

char temp = str[start];

str[start] = str[end];

str[end] = temp;

start++;

end--;

}

}

int main() {

int num = -123;

char str[20];

int_to_string(num, str);

printf("转换后的字符串: %s\n", str);

return 0;

}