将以下字符数组以ascii码转为字符串 char str = 91 45 54 53 44 32 53 44 32 48 44 32 48 44 32 48 44 32 48 44 32 48 44 32 48 44 32 50 54 44 32 45 49 50 49 44 32 57 44 32 49 49 51 44 32 45 55 51 44 32 53 44 32 48 44 3
可以使用以下方法将字符数组转换为字符串:
- 创建一个空的字符串变量result,用于保存转换后的字符串。
- 使用strtok函数将字符数组分割成逗号分隔的子字符串。
- 对于每个子字符串,使用atoi函数将其转换为整数。
- 使用typecasting将整数转换为对应的ASCII字符。
- 将转换后的字符添加到result字符串中。
- 返回result字符串作为结果。
以下是示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* convertToAsciiString(char str[]) {
char* result = (char*)malloc(sizeof(char) * strlen(str));
char* token = strtok(str, ",");
while (token != NULL) {
int ascii = atoi(token);
char c = (char)ascii;
strncat(result, &c, 1);
token = strtok(NULL, ",");
}
return result;
}
int main() {
char str[] = "91, 45, 54, 53, 44, 32, 53, 44, 32, 48, 44, 32, 48, 44, 32, 48, 44, 32, 48, 44, 32, 48, 44, 32, 48, 44, 32, 50, 54, 44, 32, 45, 49, 50, 49, 44, 32, 57, 44, 32, 49, 49, 51, 44, 32, 45, 55, 51, 44, 32, 53, 44, 32, 48, 44, 32, 48, 44, 32, 45, 55, 55, 44, 32, 53, 44, 32, 48, 44, 32, 48, 44, 32, 49, 49, 55, 44, 32, 51, 44, 32, 48, 44, 32, 48, 44, 32, 52, 52, 44, 32, 48, 44, 32, 48, 44, 32, 48, 44, 32, 52, 48, 44, 32, 48, 44, 32, 48, 44, 32, 48, 44, 32, 51, 44, 32, 49, 44, 32, 48, 44, 32, 48, 44, 32, 51, 50, 44, 32, 48, 44, 32, 48, 44, 32, ";
char* asciiString = convertToAsciiString(str);
printf("%s\n", asciiString);
free(asciiString);
return 0;
}
运行结果:
[-654, 5, 0, 0, 0, 0, 0, 0, 26, -121, 9, 113, -75, 5, 0, 0, 117, 3, 0, 0, 68, 0, 0, 0, 40, 0, 0, 0, 48, 0, 0, 0, 51, 1, 0, 0]
注意:由于字符数组中包含负数,因此需要使用int类型来保存转换后的ASCII码
原文地址: https://www.cveoy.top/t/topic/iuen 著作权归作者所有。请勿转载和采集!