C 将.txt文件拆分为单词,并将每个单词存储在数组中
假设我的文件有大约1000个单词,带有逗号、点和分号。C 将.txt文件拆分为单词,并将每个单词存储在数组中,c,arrays,string,C,Arrays,String,假设我的文件有大约1000个单词,带有逗号、点和分号。 我必须将文本拆分为单词(可能使用“strtok”,但我不知道如何正确执行),然后将这些单词写入数组。怎么做这样的事?有人能写一段工作代码并解释它是如何工作的吗?我希望这个程序能帮助你。它可能并不完美,但它接近你所问的 #include <stdio.h> #include <stdlib.h> #include <string.h> void main() { char str[5000];
我必须将文本拆分为单词(可能使用“strtok”,但我不知道如何正确执行),然后将这些单词写入数组。怎么做这样的事?有人能写一段工作代码并解释它是如何工作的吗?我希望这个程序能帮助你。它可能并不完美,但它接近你所问的
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char str[5000];
char *ptr;
char *words[5000];
FILE * fp = fopen("hi.txt", "r");
fgets(str, 49, fp); // read 49 characters
ptr = strtok(str, ",.; "); // split our findings around the " "
int i = 0;
while(ptr != NULL) // while there's more to the string
{
words[i]= ptr;
i++;
ptr = strtok(NULL, ",.; "); // and keep splitting
}
fclose(fp);
for(int j=0;j<i;j++) {
printf("%s\n", words[j]);
}
}
试验
让我们看看你尝试了什么,让我们看看你的努力。这纯粹是你的懒惰。有人能写一段工作代码并解释它是如何工作的吗?这是不赞成的。细节fgets(str,49,fp);//读取49个字符
最多可读取48个字符。
foo, bar. baz; bletch.
./a.out
foo
bar
baz
bletch