C/C++每日总结

点击上方「嵌入式龙憨憨」,选择「置顶/星标公众号」第一时间查看编程笔记!

特别设置【每日总结】专栏:

对专业课--C/C++的复习刷题进行总结,归纳错题知识点,记录知识点掌握不足的部分,并进行相应的知识拓展,巩固基础,回顾知识,共同进步,加油!

1

错题总结

1、以下程序运行后,如果从键盘上输入:

book

book

则输出结果是( )

#include #include void main(){    char a1[80],a2[80],*s1=a1,*s2=a2;    gets(s1);     gets(s2);    if (!strcmp(s1,s2))        printf("*");    else        printf("#");    printf("%d\n",strlen(strcat(s1,s2))); }

A、*8   B、#9   C、#6   D、*9

  • 正确答案:B

  • 答案解析:

    第1个回车将字符串"book"赋值给a1,第二个回车将"book"赋值给a2;

    因此strcmp(s1,s2)的结果不相等,返回非0值,if语句括号中的条件!strcmp(s1,s2)结果为假,执行else分支输出“#”strcat合并两个字符串,然后strlen测试字符串长度并输出两个字符串合并到a1中的字符个数为9

2

知识点解析

1、gets()函数

基本形式:gets(char* )

从stdin流中读取字符串,接收到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容读取的换行符被转换为‘\0’空字符,并由此来结束字符串。

所以题目中的gets()函数使得a1的值为"book",a2的值为"book";‘\0’空字符并不包含在内。

2、strcmp()函数

strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数

基本形式为strcmp(str1,str2)

当s1

当s1=s2时,返回值= 0;

当s1>s2时,返回正数。

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:

1."A"

2."A"

3."Apple"

4."A"

5."compare"

明显"book"book",所以题目中返回负数,非0;

特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。

ANSI标准规定,返回值为正数,负数,0。而确切数值是依赖不同的C实现的。

  • 当两个字符串不相等时,C标准没有规定返回值会是1或-1,只规定了正数和负数。

  • 有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。

3、strcat()函数

基本形式:strcat(char *,const char *)

strcat函数是string catenate(字符串连接)的缩写,作用:将第二个字符数组中的字符串连接到前面字符数组的字符串后面。

所以题目中合并的字符串为"bookbook"。

4、strlen()函数

基本形式:strlen(const char*)

strcat函数是string length(字符串长度)的缩写,作用是测试字符串的实际长度,它求得方法是从开始到遇到第一个'\0',从首地址一直找下去,直到遇到'\0'停止实际长度不包括‘\0’字符在内。

所以题目测试的是"bookbook"的长度,为9。

长按图片关注

分享技术,码字不易

转发、在看就是我最大的动力

置顶/星标公众号,和我一起学习吧

c++如何让字符串重复输出_2020.10.02错题总结之字符串相关函数相关推荐

  1. 【必备算法】字符串(反转问题):LeetCode题 344. 反转字符串,541. 反转字符串 II,917. 仅仅反转字母

    写在前面,反转数组的思路很简单,就是借助双指针不断将首尾相应位置的字符交换.Java模板如下: public void reverseArray(char[] arr) {int i = 0, j = ...

  2. 牛客网错题集合之字符串(一)

    [不定项选择题] 已知一段文本有1382个字符,使用了1382个字节进行存储,这段文本全部是由a.b.c.d.e这5个字符组成,a出现了354次,b出现了483次,c出现了227次,d出现了96次,e ...

  3. c++如何让字符串重复输出_python编程入门八:列表、元组、字符串的转换及补充方法...

    在python中,包括我们之前已经讲过列表.元组及字符串的一些用法了,大家应该可以感觉到,这三种"数据类型"还是有很多相同之处的,所以python中也可以轻易的实现三种类型之间的转 ...

  4. c++如何让字符串重复输出_如何入门Python之自学python基础教程送你参考

    随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?这里整理了一些个人经验和Python入门教程供大家参考. 什么是算法 ...

  5. SZUACM集训字符串基础总结: 字符串最小表示 ,KMP, EXKMP, Manracher, Trie树,字符串的hash; 附带一写常见的运用技巧,邝斌大佬的板子和例题[持续更新]

    第一部分 字符串的匹配<-------->KMP 模式匹配:子串的定位运算称为串的模式匹配或串匹配. 假设有两个串S,T,设S为主串,也称正文串,T为子串,也称为模式,在主串S中查找与模式 ...

  6. python 重复输出字符串

    阿里云大学人工智能学前小测验-Python测试 7.a ="1" b = a*2 输出b的值为 A. 1 B. 2 C. 11 D. null 我选的答案是D,结果 答案是C,因为 ...

  7. 在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。

    在主函数中输入10个等长的字符串.用另一函数对它们排序.然后在主函数输出这10个已排好序的字符串. 解题思路: 排序方式与数字比较没什么不同,先遍历比较找出最大的字符串,与第一个字符串进行交换,然后剩 ...

  8. 要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9) 也不相同,每个字符串长度为10;

    import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; / ...

  9. python重复输出_Python教程第10篇: python print换行输出和python将一句话重复n次输出...

    内容提要:本篇Python教程分享了两个问题的解决方法,分别是python print换行输出和python将一句话重复n次输出. 学习到现在,我们的Python教程进入第10课的学习.刚才小编在网站 ...

最新文章

  1. C库函数-perror()
  2. 阿里云服务器新手安装nginx
  3. Java多线程之并发容器(五)
  4. java 继承调用_【JAVA学习】继承中函数调用机制
  5. 1.5编程基础之循环控制 17:菲波那契数列--刘昕源-2019-06-23
  6. 2017.9.20 回文串 思考记录
  7. 亲历!给大龄IT人的几点求职建议
  8. 微信小程序支付-付款(Java后台)
  9. 计算机共享怎么ip设置,如何设置网络打印机共享
  10. C语言编程 肥宅快乐水
  11. Android利用NotificationListenerService实现消息盒子功能
  12. 计算机学情问卷调查报告,学情调查报告及调查问卷(共9篇).docx
  13. widows下安装pycurl并利用pycurl请求https地址
  14. 记一个vue v-if引起的图片加载导致样式跳动问题
  15. Stream流和Optional
  16. 原创仿虎哥说车抖音文案,抖音策划,虎哥说车文案背景音乐,房子租凭宣传文案
  17. 一道小学题,解答了我与学霸的差距
  18. android仿空间短视频播放
  19. 【正点原子MP157连载】第十六章 基本定时器实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
  20. 注会是计算机考试吗,注会考试可以自带计算器么 这几点千万要注意

热门文章

  1. SQLServer数据库如何收缩日志空间?
  2. 图解C/C++中函数参数的值传递、指针传递与引用传递
  3. Magento 头部的演示信息去除
  4. 雅虎的Web优化最佳实践
  5. 问题清空easyui required=true的提示信息所在位置不对。乱跑的解决办法
  6. apache camel 的 split 和 aggregate
  7. 操作 Wave 文件(4): 获取 Wave 文件主块与子块的信息
  8. 网络工程师职业发展路线图
  9. laravel 目录
  10. redis、memcache、mongoDB有哪些区别?