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;
}