使用strstr()函数

为了解strstr()具体怎样工作,我们来看一个例子。假设要在一个长字符串“dysfunctional”中找字符串“fun”,你可以像这样调用strstr()

使用strstr()函数 - 图1

strstr()函数会在第一个字符串中查找第二个字符串,如果找到,它会返回第二个字符串在存储器中的位置,在这个例子中,函数会发现fun子串从存储器4 000 003号单元开始。

如果strstr()找不到子串怎么办?如果找不到,strstr()就会返回0值。为什么要返回0呢?如果你还记得,就知道C语言中0就相当于假,也就是说,可以用strstr()检查一个字符串是否存在于另一个字符串中,像这样:

  1. char s0[] = "dysfunctional";
  2. char s1[] = "fun";
  3. if (strstr(s0, s1))
  4. puts("我在dysfunctional中找到fun了!");

我们来看看如何在点唱程序中应用strstr()。

使用strstr()函数 - 图2游泳池拼图

酒吧那帮家伙开始写点歌程序的代码了。哦,不!代码掉进了游泳池。你能选出正确的代码并补全“找歌”函数吗?游泳池已经几百年没人洗了,所以要小心,有的代码可能一次都用不到。

注意:这群家伙加入了一些他们在这本书中其他地方找到的代码。

使用strstr()函数 - 图3

 

使用strstr()函数 - 图4变身编译器

点唱程序需要一个主函数,它从用户那里读取输入,然后调用左页的find_track()函数。你的任务是扮演编译器,说出你将在点唱程序中使用哪个main()函数。

使用strstr()函数 - 图5

 

使用strstr()函数 - 图6游泳池拼图解答

酒吧那帮家伙开始写点歌程序的代码了。哦,不!代码掉进了游泳池。你将选出正确的代码并补全“找歌”函数。

注意:这群家伙加入了一些他们在这本书中其他地方找到的代码。

使用strstr()函数 - 图7

 

使用strstr()函数 - 图8变身编译器解答

点唱程序需要一个主函数,它从用户那里读取输入,然后调用左页的find_track()函数。你的任务是扮演编译器,说出你将在点唱程序中使用哪个main()函数。

使用strstr()函数 - 图9