在字符串中提取单词的方法
在字符串中提取一个用约定分隔符分割的单词,是编程常用的操作。scanf()函数读取数据,主要靠的就是这个手段,因为输入流是字符串,要把各种用字符表达的数据转换为所需的类型,首先要把符合条件的单词分割出来,再进行转换处理。C语言处理这个操作,实际上是用strtok()函数,这个函数C程序员必须掌握,很常用。示例如下:
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int main(void)
{
char text[] = "I Love China !"; // 被分割的字符串,必须是可编辑的,不能储存在常量区
const char delimit[] = { ' ', '!', '\0' }; // 分割单词的字符集
char* word = NULL; // 提取到的单词的指针
char* nextWord = NULL; // 指示下次操作的入口指针,实际上是strok()在分割单词之后
// 置入的'\0'字符处,这就是源串不能是常量的原因
word = strtok_s(text, delimit, &nextWord);
while (word != NULL)
{
puts(word);
word = strtok_s(NULL, delimit, &nextWord);
}
_getch();
return EXIT_SUCCESS;
}
运行结果:




