char str[] ="wo cao shui chu de jiba lanti";
char *p[5] = {};//存储单词的字符串指针
char temp[6] ="";//临时存放单词的字符数组
int i = 0;//while的增量
int j = 0;//temp中的下标
int k = 0;//指针字符数组的下标
while (i <= strlen(str)) {
if (str[i] != ' ' && str[i] != '\0' ) {
temp[j] = str[i];//如果不是空格和"\0"把str中的值赋给temp
j++;
}
if (str[i] == ' ' || str[i] == '\0') {
temp[j] ='\0';//当遇到空格或者'\0'时,表示单词结束,把'\0'赋给temp.
p[k] = malloc(j + 1);//为p[k]动态分配内存
strcpy(p[k], temp);//将temp里面的单词拷贝到p[k]中.
k++;
j = 0;//令temp的下标制零
}
i ++;
}
for (int i = 0; i < k; i++) {
printf("%s\n",p[i]);//打印单词
free(p[i]);//释放内存
p[i] = NULL;//是指针指向一个无效的地址
}