如果我有一个类似的字符串char str [] = "hello;people;how;are;you"
并使用strchr(str,";")
我如何获取字符串的第 N 个标记?
问问题
1415 次
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 回答