gpt4 book ai didi

c - Pascal 字符串到 cstring

转载 作者:行者123 更新时间:2023-11-30 15:04:38 25 4
gpt4 key购买 nike

尝试编写一个简单的 pascal 到 cstring 转换方法。该方法将 void* ptr 传递给 pascal 字符串。生成的 cstring 返回传递的 pascal 字符串的正确字符数。但它包含的只是字符串长度的十六进制值。例如,帕斯卡字符串的第一个元素是字符串的长度。例如,如果第一个元素中的数字是 15,则 return 语句将返回一个 15 个字符全部设置为 FF 的 cstring。就好像指针没有增加一样。不知道如何解决这个问题。任何帮助将不胜感激。

#include <stdio.h>
#include <stdlib.h>

char* pascal_convert(void* ptr) {
int len = *((int*)ptr)+1;
char *cString = malloc(sizeof(char) * (len));
(int*)ptr + 1;
for (int i = 0; i < len; i++) {
cString[i] = *((char*)ptr);
(char*)ptr + 1;
}
cString[len] = '\0';
return cString;

}

最佳答案

您需要将字符串的当前地址存储在某处

int currentPtr = (int*)ptr + 1;
for (int i = 0; i < len; i++) {
cString[i] = *((char*) currentPtr);
currentPtr++;
}

关于c - Pascal 字符串到 cstring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40210587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com