我正在尝试创建一个基于单个 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/