字符串练习——输入关键字找歌曲

#include<stdio.h>
#include<string.h>  //要用strstr()函数来查找字符串 
char tracks[][80] = {  //歌曲清单 
    "I left my heart in Harvard Med School",
    "Newark,Newark - a wonderful town",
    "Dancing with a Dork",
    "From here to maternity",
    "The girl from Iwo Jima",
}; 

void find_track(char search_for[])
{
    int i;
    for(i=0;i<5;i++){
        if(strstr(tracks[i],search_for))  //显示所有匹配的歌曲 
        printf("Track %i:'%s'\n",i,tracks[i]);
    }
}

int main()
{
    char search_for[80];
    printf("Search for:");  //输入查找的关键字 
    fgets(search_for,80,stdin);
    search_for[strlen(search_for)-1]='\0';
    find_track(search_for);  //显示匹配的歌曲 
    return 0;
}

要点

  • 可以用char strings[...][...]来创建数组的数组。
  • 第一组方括号用来访问外层数组。
  • 第二组方括号用来访问每个内层数组中的元素。
  • 有了string.h头文件后,就可以使用C标准库中的字符串处理函数。
  • 可以在一个C程序中创建多个函数,但计算机总是先运行main()。

疑惑

  1. 程序段中tracks数组一共占了多少字符?  答:80*5=400字符。
  2. 为什么要把tracks数组定义在函数外面? 答:我们把tracks放在全局域,全局变量可以在所有函数中使用。
  3. 为什么要把find_track()放在main()之前? 答:在调用函数前,编译器需要知道两件事,函数接收什么参数以及函数的返回类型是什么。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏chenssy

推荐四十多条纯干货 Java 代码优化建议

代码优化最重要的作用应该是避免未知的错误,因此在写代码的时候,从源头开始注意各种细节,权衡并使用最优的选择,将会很大程度上避免出现未知的错误,从长远看也极大的降...

12980
来自专栏博客园

MSIL学习------从HelloWorld开始

  前段时间突然想搞搞IL语言,于是在博客园中找到了包建强前辈关于IL的文章学习,并且在包前辈博客里看到了09年他与赵劼前辈关于是否有必要学习IL语言的争论,作...

14830
来自专栏NetCore

设计异常解决方案的几点注意事项

“要……”描述的是总要遵循的规范(但特殊情况下,可能需要违反)。 “考虑……”描述的是一般情况下应该遵循的规范,但如果完全理解规范背后的道理,并有很好的理由不遵...

19890
来自专栏老九学堂

【超详细】Java入门学习进阶知识点汇总

入门阶段,主要是培养Java语言的编程思想。了解Java语言的语法,书写规范等,掌握Eclipse、MyEclipse等开发工具,编写Java代码的能力。学完这...

41950
来自专栏ASP.NETCore

.NET Core中妙用unsafe减少gc提升字符串处理性能

昨天在群里讨论怎么样效率的把一个字符串进行反转,一般的情况我们都知道,只要对String对象进行操作, 那么就会生成新的String对象,比如"1"+"2" 这...

47810
来自专栏JavaQ

多参数方法进阶

很多高级工程师还在写包含N个参数的方法、使用setter方法构造实例,其实这些方式都是过时并且有很大缺陷的,本篇将深入讲解这些问题及解决方法。 多参数方法的问题...

348110
来自专栏python3

python3--序列化模块,hashlib模块

__len__    len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度

27410
来自专栏架构师之旅

疯转|最近5年133个Java面试问题列表

Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越...

27150
来自专栏Crossin的编程教室

Python3 里不存在编码问题?

编码问题在 Python 中一直是个巨坑。关于 Python 2 的编码问题,之前写过一篇文章: 浅谈 Python 2 中的编码问题 在 Python 3 中...

33350
来自专栏腾讯IVWEB团队的专栏

从 redux 的纯函数到函数式编程

在做业务时我们用 react + redux 框架,其中 redux 的 reducers 是用的纯函数。这里什么是纯函数?为什么要用纯函数?纯函数的好处是什么...

36200

扫码关注云+社区

领取腾讯云代金券