我正在尝试编写一个解析函数,该函数调用另一个函数 getword() 将给定的字符串分解为单词。调用 getword() 将提供给 getword 的字符串前进到下一个由空格分隔的单词。
void parse(char *s, char **p) {
int i = 0;
while(*s != -1 && *s != '&' && *s != '\n' && *s != ';' && *s != '\0') {
p[i] = s;
i++;
getword(s);
}
}
运行调用程序后,我想打印出数组 p 中的 char 指针指向的字符串。这是可能吗?
我试过了 :
printf("%s\n", (**p));
在调用程序中,但它只打印出“(null)”。
编辑:
输入字符串“Hello World”后,我尝试使用以下循环:
for(i=0; i< MAXITEM; i++)
printf("%s\n", p[i]);
但程序返回:
"
(空)
(空)
(空)..."
两个空白换行符,然后是 98(空)。“Hello”和“World”这两个词实际上是否存储在这两个空白换行符中,或者它们实际上没有存储在 **p 中?