如何从一个句子高效地在C中提取的话?

我需要一个有效的函数,提取第一,第二和句子的其余三个变量。

--------------解决方案-------------

简单的方法:使用的strtok()或strtok_r拿到前两个代币,这将从字符串中删除他们,所以字符串本身将是你的,你正在寻找第三个令牌。

硬办法:自己解析:(

strtok时在C串库,并会产生变异原始的字符串,所以一定要小心,先复制的字符串,如果它需要保持完整。

可能的例子:

//#include <string.h>

char input[] ="first second third forth";
char delimiter[] = " ";
char *firstWord, *secondWord, *remainder, *context;

int inputLength = strlen(input);
char *inputCopy = (char*) calloc(inputLength + 1, sizeof(char));
strncpy(inputCopy, input, inputLength);

firstWord = strtok_r (inputCopy, delimiter, &context);
secondWord = strtok_r (NULL, delimiter, &context);
remainder = context;

printf("%s\n", firstWord);
printf("%s\n", secondWord);
printf("%s\n", remainder);

getchar();
free(inputCopy);

这应该只是罚款,并线程与原始字符串未突变。

的strtok()

您需要首先定义分隔符。 有几个问题strtok它修改其参数为一体,它可以降落在你的麻烦)。 我喜欢阅读字符串中和运行定制解析器其范围从sscanf到一个盛放解析器。 请张贴一些更多的细节。

分类:C# 时间:2015-03-15 人气:0
本文关键词: C#中,字符串,字符串
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 8.721 (s). 10 q(s)