从技术上讲,我意识到它们略有不同,因为数组是以空结尾的。但是想办法改变
int charArray[] = {'h', 'e', 'l', 'l', 'o'}; //ascii chars = ints
到
char *string;
最佳答案
由于charArray
不是字符串,因此不能使用标准函数,如strcpy()
或strlen()
。相反,复制每个字符,并在末尾添加'\0'
。sizeof(charArray) / sizeof(int)
可以告诉您要复制多少个字符。
size_t sz = sizeof(charArray) / sizeof(int);
char *string = malloc(sz + 1);
for (int i = 0; i < sz; i++)
{
string[i] = charArray[i];
}
string[sz] = '\0';