如何使用 strtok 将由白色 space 分隔的单词放入 C 中的 char 数组中?
How do I use strtok to take in words separated by white space into a char array in C?
我打开了一个文件:
#define MAX 1000000000
char buffer[MAX];
FILE *file = fopen("sample1.txt", "r");
char c;
if(file == NULL) {
perror("File open error");
return -1;
}
现在我想做的是使用 'strtok' 并将文件中的单独单词放入字符数组缓冲区。
因为你在这里看起来很新,我会回答,但一定要在 SO 中的下一个问题上付出更多努力。
您搜索过 strtok()
吗?在ref中有一个很好的例子。我只是稍微修改了一下,只使用空格作为标记。
我会把这段代码集成到你的代码中给你。
/* strtok example with whitespaces*/
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into token:\n",str);
pch = strtok (str," ");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ");
}
return 0;
}
另请注意,您可以搜索 google 以查找与您的问题相关的问题。这是一个相关的 question!
正如 Alter Mann 指出的那样:
#include <stdio.h>
#include <string.h>
char *strsep(char **, const char *);
int main(void)
{
char str[] = "- This, a sample string.";
char *pch = str;
char *tok;
printf("Splitting string \"%s\" into token:\n", str);
while (tok = strsep(&pch, " \t\n")) {
printf("%s\n", tok);
}
return 0;
}
是您正在寻找的,不是标准的,但在许多实现中都可用。检查其引用 here.
此外,请注意这是如何改进我上面提供的 strtok()
代码的提示。
我打开了一个文件:
#define MAX 1000000000
char buffer[MAX];
FILE *file = fopen("sample1.txt", "r");
char c;
if(file == NULL) {
perror("File open error");
return -1;
}
现在我想做的是使用 'strtok' 并将文件中的单独单词放入字符数组缓冲区。
因为你在这里看起来很新,我会回答,但一定要在 SO 中的下一个问题上付出更多努力。
您搜索过 strtok()
吗?在ref中有一个很好的例子。我只是稍微修改了一下,只使用空格作为标记。
我会把这段代码集成到你的代码中给你。
/* strtok example with whitespaces*/
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into token:\n",str);
pch = strtok (str," ");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ");
}
return 0;
}
另请注意,您可以搜索 google 以查找与您的问题相关的问题。这是一个相关的 question!
正如 Alter Mann 指出的那样:
#include <stdio.h>
#include <string.h>
char *strsep(char **, const char *);
int main(void)
{
char str[] = "- This, a sample string.";
char *pch = str;
char *tok;
printf("Splitting string \"%s\" into token:\n", str);
while (tok = strsep(&pch, " \t\n")) {
printf("%s\n", tok);
}
return 0;
}
是您正在寻找的,不是标准的,但在许多实现中都可用。检查其引用 here.
此外,请注意这是如何改进我上面提供的 strtok()
代码的提示。