char b[10] = {0};
char *a[10] = {NULL};
int i = 0, j = 0,k = 0;
while (1) { //把字符串的'\0' 作爲if判斷的條件,避免遇到\0不在判斷
if (c[i] != ' ' && c[i] != '\0') {
b[k++] = c[i++];
continue; //提高效率,當進行此if判斷時,就不在進行一下if判斷
}
if ((c[i] == ' ' || c[i] == '\0') && k != 0) { //k判斷是否有字符賦給b數組,沒有的話意味着前面是空空格,就不在需要進行判斷,提高運行效率
b[k] = '\0'; //給數組b加上\0 ,結束字符
a[j] = malloc(strlen(b) + 1); //爲指針開闢空間
strcpy(a[j], b); //b是首地址,a[j]也是首地址,函數具有複製功能,如:%s
k = 0;
j++;
}
if (c[i] == '\0') { //把while中的\0判斷移到可以先判斷\0的情況
break;
}
i++;
}
for (int i = 0 ; i < j ; i++ ) {
printf("%s\n", a[i]); //int a = 10; int *b = null; b = &a; *b = 10;
free(a[i]); //* 具有指向功能,
a[i] = NULL;
}