這裏我寫了一段代碼,它不使用strtok()函數就可以將單詞從給定的句子中分離出來,但是問題是它只打印第一個單詞。爲什麼其餘的單詞不用'不打印?把單詞從一個沒有庫函數的句子中分離出來
#include <stdio.h>
#include <string.h>
int main()
{
char str[] ="This, a sample string.";
int i=0,k,begin,end;
while(str[i]!='\0'){
while(str[i]==' '){
i++;
}
begin = i;
while(str[i]!=' ' && str[i]!='\0'){
i++;
}
end = i-1;
char *ptr =(char *)malloc((end-begin)*sizeof(char));
for(k=begin;k<=end;k++){
ptr[k] = str[k];
}
printf("%s\n",ptr);
if(str[i]=='\0'){
break;
}
}
}
這不會打印*任何東西*更不用說第一個字。沒有'puts','printf','putc',基本上在發佈代碼*中根本沒有控制檯輸出*。 – WhozCraig
不分配足夠的內存,不寫入字符串終止符。 –