我知道如何在 C 中搜索字符串。我使用 for 循环然后使用 strstr 函数来确定是否存在任何事件。但现在我的 int 数字比我想搜索的要多。我确实在互联网上找到了几个例子,但所有这些都搜索了我不想要的确切数字。我需要像“20”这样搜索,如果有数字“2010”,它应该显示它。
我怎么能在c中做到这一点?
也许我错过了重点......但为什么不继续使用 strstr 呢?
int main(){
char tmpbookyear [] = "this year is 2010";
char searchCriteria [] = "20";
char *result;
if((result = strstr (tmpbookyear, searchCriteria)) != NULL)
printf ("Returned String: %s\n", result);
else
printf("GOT A NULL\n");
}
mike@linux-4puc:~> gcc test.c
mike@linux-4puc:~> ./a.out
Returned String: 2010
I need to search like "20" and if there is a number "2010" it should display it.
这就是你想要它做的对吗?
编辑:
char year[] = "2012";
char search[] = "2";
if(strstr(year, search) != NULL)
{ printf("result is %s\n",strstr(year, search)); }
mike@linux-4puc:~> gcc test.c
mike@linux-4puc:~> ./a.out
result is 2012
逐个字符扫描字符串,直到找到一个数字(isdigit()
返回非零)。然后将该位置的字符串转换为 unsigned long with strtoul()
。进行比较,然后使用转换结束指针 return fromstrtoul()
知道从哪里继续扫描。