char str[] ="wo shi ni da ye";
char *p[5] = {0};
char temp[5] ="";//临时的字符串数组
int i =0,j =0,k =0;//分别为 str , temp,*p ,的自增变量
while (i <sizeof(str)) {
if (str[i] !=' ' || str[i] !='\0') {
temp[j] = str[i];
j++;//把字母赋给 temp
}
if (str[i] ==' ' || str[i] =='\0'&& j != 0) {
temp[j] = '\0';//加上字符串结束标志
p[k] = malloc(j +1);//分配动态内存空间
strcpy(p[k], temp);//将temp拷贝到p[k]的内存空间中
j = 0;//归零
k++;
}
i++;
}
for (i =0; i < k ; i++) {//输出指针数组的内容
printf("%s\n",p[i]);
free(p[i]);
p[i] = NULL;//释放空间
}