1

我知道如何在 C 中搜索字符串。我使用 for 循环然后使用 strstr 函数来确定是否存在任何事件。但现在我的 int 数字比我想搜索的要多。我确实在互联网上找到了几个例子,但所有这些都搜索了我不想要的确切数字。我需要像“20”这样搜索,如果有数字“2010”,它应该显示它。

我怎么能在c中做到这一点?

4

2 回答 2

2

也许我错过了重点......但为什么不继续使用 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
于 2012-09-19T12:05:17.640 回答
1

逐个字符扫描字符串,直到找到一个数字(isdigit()返回非零)。然后将该位置的字符串转换为 unsigned long with strtoul()。进行比较,然后使用转换结束指针 return fromstrtoul()知道从哪里继续扫描。

于 2012-09-19T11:51:39.550 回答