#include <stdio.h>
#include <stdlib.h>

char* int_to_str(int num) {
    char* str = (char*)malloc(sizeof(char) * 12); // 最大长度为 11 位加上符号位
    int i = 0, j = 0;
    if (num < 0) {
        str[i++] = '-';
        num = -num;
    }
    do {
        str[i++] = num % 10 + '0';
        num /= 10;
    } while (num != 0);
    str[i] = '\0';
    // 反转字符串
    if (str[0] == '-') j = 1;
    for (; j < i / 2; j++) {
        char tmp = str[j];
        str[j] = str[i - j - 1];
        str[i - j - 1] = tmp;
    }
    return str;
}

int main() {
    int num = -12345;
    char* str = int_to_str(num);
    printf("%d 转换为字符串为:%s\n", num, str);
    free(str); // 释放内存
    return 0;
}

本代码展示了一个 C 语言函数 int_to_str,用于将整数转换为字符串。函数逻辑如下:

  1. 内存分配: 使用 malloc 为字符串分配内存空间,考虑到最大长度为 11 位整数加上符号位,因此分配 12 字节空间。
  2. 负数处理: 如果输入的整数为负数,则在字符串的开头添加 '-' 符号。
  3. 数字转换: 使用 do...while 循环逐位将整数转换为字符,并将字符存储在字符串中。
  4. 字符串反转: 由于数字转换是从低位到高位进行的,因此需要将字符串反转,以获得正确的顺序。
  5. 内存释放: 使用 free 释放动态分配的内存,避免内存泄漏。

该函数提供了高效的整数转换功能,同时注意了内存管理,确保代码的健壮性。在实际应用中,可以通过修改函数参数和返回值类型,以适应不同的应用场景。

C 语言整数转字符串函数:高效实现和内存管理

原文地址: https://www.cveoy.top/t/topic/nHZ2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录