在C中将ASCII码转换为字符串

标签 c arrays string

我正在尝试创建一个基于单个 ASCII 代码的字符数组。即使“num”被转换为 char,以下代码也无法正确编译:

//Returns the ASCII counterpart of a number, such as 41 = A, 42 = B, 43 = C, etc.
char numToASCII(int num) {
    char[] string = {(char)num, "\0"};
    return string;
}

对于我所承担的任务,“字符串”是字符数组/字符串而不是单个字符非常重要。任何帮助将不胜感激。

最佳答案

数组必须初始化为常量表达式,如果要返回数组,函数应该返回指针。 如果您只想返回一个字符,请使用以下代码:

char numToASCII(int num) {
    return (char)num;
}

如果你想返回包含该字符的字符串,那么你应该使用以下代码:

#include <stdlib.h>

char *numToASCII(int num) {
    /*
     * Use malloc to allocate an array in the heap, instead of using a
     * local array. The memory space of local array will be freed after
     * the invocation of numToASCII.
     */
    char *string = malloc(2);
    if (!string)
            return 0;
    string[0] = num;
    string[1] = 0;
    return string;
}

使用free()函数释放malloc()分配的空间。

关于在C中将ASCII码转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45427322/

相关文章:

java - 求 A[J] +- A[I] 的最大值

c++ - 字符串分配的双重释放或损坏错误

c - C语言中双变量数据类型的算术位移位

c - 数组初始化期间的类型

c - UTF-8 字符串大小(以字节为单位)

不同类型的python列表到数组

c++ - 编写一个简单的 Bootloader HelloWorld - 错误函数打印字符串

c - 我想将一个数组从我的主要方法传递到我的函数(min),以便可以在函数(min)中计算最小值

c# - 从包含小数点和逗号毫秒分隔符的字符串转换为 DateTime

python - 如何从Python中的列表中删除单引号