我正在尝试将普通的 C 字符串转换为 Pascal 字符串。当我需要将 pascal 字符串的第一个索引分配为字符串的长度时,我遇到了麻烦。我将把我的代码放在下面,但我似乎无法弄清楚如何将原始字符串的长度(尤其是当它超过 10 时)slen 转换为一个可以分配给索引的字符。
char pascal[slen];
char pascalFirst = slen + '0'; //Having such a hard time assigning pascal[0]
printf("%c\n", pascalFirst);
pascal[0] = pascalFirst;
printf("%s pasFirst\n", pascal);
for (int i =0 ; i < strlen(pascal); i++){
pascal[i+1] = s[i];
}
printf("%s\n", pascal);
最佳答案
它应该是一个简单的:
char* to_pstr(char* src) {
char* p = malloc(strlen(src) + 1);
*((unsigned char*) p) = strlen(src);
strncpy(src, &p[1], strlen(src));
return p;
}
这当然假设 src
<= 255 个字符长。
关于将 C 字符串转换为 Pascal 风格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63892736/