语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。
为了将本人的python培训提高一个层次,本人最近买了很多算法的书.

这个书上的代码基本都是c语言实现的,c语言很久没有用了,复习一下c语言。
买了一本英文书head first c 第94页有这样的代码。代码很简单,但就是不出要的结果。
#include <stdio.h>
#include <string.h>

char names[][80] = {
   "David Bowie",
   "Julia Roberts",
   "George Bush",
   "Robin Hanson",
};

void find_name(char search_for[])
{
   int i;
   for (i = 0; i < 4; i++) {
       if (strstr(names[i], search_for)) {
           printf("Name %i: '%s'\n", i, names[i]);
       }
   }

}

int main()
{
   char search_for[80];
   printf("Enter search term: ");
   fgets(search_for, 80, stdin);

find_name(search_for);

return 0;
}
本人加多个printf()测试,终于找到原因是fgets(search_for, 80, stdin);这条语句的事。
后来修改为scanf("%79s",search_for);得到要的结果。
后来再搜google这个函数的原型,这个fgets函数会读入换行符号"\n".最后找到一段代码,老外实现的
怎么去掉后面的换行符。

The fgets function reads characters from the stream up to and including a newline character and stores them in the string s, adding a null character to mark the end of the string.

A newline character makes fgets() stop reading and is included in the string. Which means that when you type “David Bowie” the search string will contain “David Bowie\n”, which does not equal names[0]:

{‘D’, ‘a’, ‘v’, ‘i’, ‘d’, ‘ ‘, ‘B’, ‘o’, ‘w’, ‘i’, ‘e’, ‘\n‘, ‘\0′} does not equal {‘D’, ‘a’, ‘v’, ‘i’, ‘d’, ‘ ‘, ‘B’, ‘o’, ‘w’, ‘i’, ‘e’, ‘\0′}

The solution? Replace the newline character by a NULL character:

size_t len = strlen(search_for) - 1;

if (search_for[len] == '\n');
   search_for[len] = '\0';

This works because the NULL character marks the end of any character array that is a string. In other words, the string ends at the first null character.

转载于:https://blog.51cto.com/pythonpeixun/1217161

语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...相关推荐

  1. 大一java怎么学好_是否应该学习第二门语言,学那个比较合适。

    如果从尽快找工作的角度,我认为不需要学习第二门语言.计算机语言只是工具!尽快用自己已经掌握的语言向计算机世界更重要的问题进发,完成项目更重要.比如你说的Java Web.因为这将让你了解更多计算机世界 ...

  2. 都说了多少遍,不要再学 JSP 了!

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:在滴滴和头条干了 2 年后端开发,太真实-个人原创100W+访问量博客:点击前往,查看更多 陈龙|https:/ ...

  3. 在你迷茫时不如学好一门语言(送给大一的学弟学妹)

    在你迷茫时不如学好一门语言 个人经历: 记得大一刚来的时候,完全不理解软件专业是干嘛的,就知道跟着老师和一些学长敲一些没见过的代码.刚开始学的是C语言,那些代码都不理解是什么意思,学长说,你不用理解, ...

  4. 编程c语言零基础知识,零基础学习C语言都需要掌握哪些基础知识

    随着互联网的不断发展,越来越多的人都在学习互联网软件编程开发语言,而今天我们就一起来了解一下,零基础学习C语言都需要掌握哪些基础知识. 无论学习哪门语言先应该了解一下自己所学语言的背景,也可以说它的发 ...

  5. 程序员如何选择第二门语言

    多人爱争论第一门程序语言该学什么.每个人的出发点不同,有人认为,第一门语言应当是有趣.无进入门坎:有人则认为,第一门语言影响往后程序开发的思考方式,要严谨而富有思考性:有人以实用为出发点,认为视(将来 ...

  6. 怎样才能学好一门编程语言?要怎样去学习才算成功?成为一名合格的程序员

    截止到目前为止,编程开发语言已经有很多种,而每个程序员根据自己的学习能力不同,掌握一到几种不同的语言. 学习目的 每个人学习一门编程语言,都是有自己的目的.比如有人想写一个App,有人想写一个小程序, ...

  7. C语言编写五子棋(详细教学版,一学就会)

            我先说一下,之所以说一学就会是因为想法很简单,只要你会写三子棋,我这个五子棋你就一定会写!因为我这个五子棋是按照我写三子棋的模板复刻的,到最后我会总结我是怎么复刻的!          ...

  8. 做了5年测试连一门语言都没学?逆袭后拿到3个超22K offer!

    所谓的"眼睛一睁一闭,一天就过去了,日子就是这样."--只是逃脱不出舒适区泥淖的人,给自己画地为牢,还安慰自己众生皆如是. 生活没有一个模样. 而是,你把生活过成了什么样. 大家都 ...

  9. 解惑:不要在多门语言间徘徊,把一门语言玩熟了,其他语言都是纸老虎...

    刚才和我弟弟通电话聊了聊这一段时间的学习以及下一阶段的学习规划,我弟弟在读大二,是计算机专业.今天和他聊电话,感触颇多,倒不是因为我发现了新的东西,而是因为竟然连他都不相信我说过的一些我认为非常根本. ...

最新文章

  1. 如何让黑白图片恢复“生机”
  2. JNI/NDK开发指南(八)——调用构造方法和父类实例方法
  3. sql查询每个学生的最高成绩mysql语句
  4. 微信小程序 wx:key 提示-解决
  5. Python爬虫框架--Scrapy
  6. 【.NET Core项目实战-统一认证平台】第十一章 授权篇-密码授权模式
  7. Android之Debug运行项目一直卡在Debug界面(can‘t bind to local 8066 for debug)
  8. 菏泽智伴机器人_智伴机器人招商
  9. MATLAB中fspecial函数的用法
  10. Windows系统服务器系统日志在哪里查看?
  11. 设计模式——设计模式概述
  12. 怎样快速备份电脑文件?
  13. Microsemi Libero系列教程(六)——Identify片上逻辑分析仪的使用
  14. win10计算机亮度在哪里调,win10电脑怎么调亮度
  15. Java job interview:WinForm界面特效设计案例导航图分享
  16. Rasa 3.x 学习系列-Rasa X 社区版(免费版) 更改
  17. 如何将极客时间课程制作成kindle电子书
  18. rk3188--4.android用initrd文件系统启动流程
  19. ASM 系列详细教程-20-ASM Method 方法分析介绍
  20. 一张图看懂docker容器的所有状态

热门文章

  1. WinDbg安装与使用
  2. 设计模式之C#实现---- ProtoType
  3. 辩证看待 iostat
  4. 从1的补码说起计算机的数制
  5. Docker客户端常用命令整理
  6. xwpftemplate的时间设置_java poi设置生成的word的图片为上下型环绕以及其位置
  7. python访问多个网站_Python多并发访问网站
  8. php使用pdo操作mysql数据库实例_php5使用pdo连接数据库实例
  9. python tkinter选择路径控件_Python3 Tkinter选择路径功能的实现方法
  10. Java项目:在线高中考试系统(java+SSM+Jsp+Mysql+Maven)