char str[] = " vaercly love iOS ";//文本
char *temp = malloc(sizeof(str));
strcpy(temp, str);
char *p[3] = {0};//存储堆区的地址
int length = 0;//存储单词的长度
int num = 0;//单词总个数
for (int i = 0; i < strlen(str) + 1; i++) {
if (str[i] != ' ' && str[i] != '\0') {
length++;//若不为空格和'\0', 则长度加1
} else if (length != 0) {
p[num] = malloc(length + 1);//动态分配内存空间,将具体的空间地址存储到对应的指针数组元素中
*(temp + i) = '\0';//将空格替换为'/0'
strcpy(p[num], temp + i - length);//将单词拷贝到对应的堆区空间
num++;//单词个数加1
length = 0;//从0计数
}
}
for (int i = 0; i < num ; i++) {
printf("%s ", p[i]);//输出单词
free(p[i]);
p[i] = NULL;
}