【发布时间】:2017-09-06 08:30:48
【问题描述】:
我正在尝试找到一种方法来完成这项工作:
//Returns a pointer to the nth char in a string
const char *nth_strchr(const char *s, int c, int n) {
int c_count = 0;
char *nth_ptr;
while (c_count++ != n) {
nth_ptr = strchr(s, c);
//need a line here to skip past the previous found occurrence.
}
return nth_ptr;
}
我不太确定如何做到这一点,以便while 循环的每次迭代都可以确认在前一个循环中找到的字符的出现/位置。因为我有指向第一次出现的指针......我正在考虑使用内存地址来增加下一个循环,以便我可以给下一个 strchr() 调用从 c + 1 位置开始的字符串?
这可能吗?
【问题讨论】:
-
if (nth_ptr==NULL) break; else nth_ptr++; -
strchr返回什么?指向它在字符串中找到的字符的指针(如果未找到,则为NULL)。现在想一想如何使用它来获取字符串中的下一个字符。