如果我有像char str [] = "hello;people;how;are;you"
这样的字符串
并使用strchr(str,";")
如何获取字符串的第N个标记?
答案 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;
}