1、使用 sprintf(推荐方法)
sprintf
是 C 标准库中的一部分(stdio.h
),可以用来将整数格式化为字符串。
#include <stdio.h> int main() { int num = 123; char str[20]; // 确保缓冲区足够大以容纳字符串表示 sprintf(str, "%d", num); // 将整数格式化为字符串 printf("转换后的字符串: %s\n", str); return 0; }
2、使用 snprintf
(比 sprintf
更安全)
snprintf
与 sprintf
类似,但它可以指定输出缓冲区的最大大小,因此更安全,可以避免缓冲区溢出。
#include <stdio.h> 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 <stdio.h> #include <stdlib.h> // 对于 itoa,如果编译器支持 int main() { int num = 123; char str[20]; // 确保缓冲区足够大 itoa(num, str, 10); // 将整数转换为十进制字符串 printf("转换后的字符串: %s\n", str); return 0; }
4、循环实现手动转换
可以通过不断提取数字来手动实现转换过程。
#include <stdio.h> 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; }