在C中用strchr迭代字符串

时间:2016-09-21 08:12:20

标签: c loops strchr

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

2 个答案:

答案 0 :(得分: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,';');
}

答案 1 :(得分: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;
}