0

如果我有一个类似的字符串char str [] = "hello;people;how;are;you" 并使用strchr(str,";")我如何获取字符串的第 N 个标记?

4

2 回答 2

3

假设您将 strchr 存储在 char * ch

然后 ch-str+1 将返回您在 strchr 中查找的字符的位置

使用预定义的子字符串函数或定义您自己的函数,您可以像这样创建一个 while 循环:

i=0;
while(ch != NULL)
{
    printf("Your subsrting is : %s", substring_function(i,(ch-str+1)));
    i = ch-str+1;
    ch=strchr(ch+1,';');
}
于 2016-09-21T08:30:41.577 回答
0

好的,找到了一个解决方案,strtok我想使用strchr. Tokenizer 是静态变量,其中包含用于标记的字符。有任何想法吗?

static const char *a(const char *string,int tkn) {
    char *tokenized=strdup(string);
    char *token;
    token=strtok(tokenized, tokenizer);
    int i=0;
    while(token != NULL) {
      if (i == (tkn-1)) {
        break;
      }
      token = strtok(NULL, tokenizer);
      i++;
   }
   return token;
}
于 2016-09-21T13:32:17.897 回答