您的代码似乎在打印字符串的部分没有完整,可能是想打印 `l->data[i]` 。以下是修改后的完整代码: ```c #include <stdio.h> #include <stdlib.h> #define maxsize 100 typedef struct cstr { char data[maxsize]; int len; } sqstring; // 初始化字符串 sqstring *initstring(char a[]) { sqstring *l; l = (sqstring *)malloc(sizeof(sqstring)); int i = 0; while (a[i]) { l->data[i] = a[i]; i++; } l->data[i] = '\0'; // 添加空字符 l->len = i; return l; } // 打印字符串 void printstring(sqstring *l) { int i = 0; for (i = 0; i < l->len; i++) { printf("%c", l->data[i]); } printf("\n"); } int main() { char str[] = "Hello World"; sqstring *s = initstring(str); printstring(s); free(s); return 0; } ``` 希望这段代码能够符合您的需求,如果您还有其他问题,请随时提问。 [2024-11-15 17:12:32 | AI写代码神器 | 308点数解答]