我试图将一个字符串(例如:“嘿老总”)转换成三角形指向句子中的每一个字一个双指针。 so:split_string-> | pointer1 | pointer2 | pointer3 |其中pointer1 - >“hey”,pointer2 - >“there”和pointer3 - >“mister”。将一个字符串分解到双指针用C
char **split(char *s) {
char **nystreng = malloc(strlen(s));
char str[strlen(s)];
int i;
for(i = 0; i < strlen(s); i++){
str[i] = s[i];
}
char *temp;
temp = strtok(str, " ");
int teller = 0;
while(temp != NULL){
printf("%s\n", temp);
nystreng[teller] = temp;
temp = strtok(NULL, " ");
}
nystreng[teller++] = NULL;
//free(nystreng);
return nystreng;
}
我的问题是,为什么不能正常工作?
你的程序在哪一点上没有做到你认为正在做的事情? – RPGillespie
请告诉我们在这种情况下“不工作”是什么意思。你得到什么输出? –
直接蝙蝠,这看起来高度可疑:'char ** nystreng = malloc(strlen(s));'。目前还不清楚为什么所需的空间等于's'的长度并且与char *的大小无关。 –