c++如何让字符串重复输出_2020.10.02错题总结之字符串相关函数
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错题总结之字符串相关函数相关推荐
- 【必备算法】字符串(反转问题):LeetCode题 344. 反转字符串,541. 反转字符串 II,917. 仅仅反转字母
写在前面,反转数组的思路很简单,就是借助双指针不断将首尾相应位置的字符交换.Java模板如下: public void reverseArray(char[] arr) {int i = 0, j = ...
- 牛客网错题集合之字符串(一)
[不定项选择题] 已知一段文本有1382个字符,使用了1382个字节进行存储,这段文本全部是由a.b.c.d.e这5个字符组成,a出现了354次,b出现了483次,c出现了227次,d出现了96次,e ...
- c++如何让字符串重复输出_python编程入门八:列表、元组、字符串的转换及补充方法...
在python中,包括我们之前已经讲过列表.元组及字符串的一些用法了,大家应该可以感觉到,这三种"数据类型"还是有很多相同之处的,所以python中也可以轻易的实现三种类型之间的转 ...
- c++如何让字符串重复输出_如何入门Python之自学python基础教程送你参考
随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?这里整理了一些个人经验和Python入门教程供大家参考. 什么是算法 ...
- SZUACM集训字符串基础总结: 字符串最小表示 ,KMP, EXKMP, Manracher, Trie树,字符串的hash; 附带一写常见的运用技巧,邝斌大佬的板子和例题[持续更新]
第一部分 字符串的匹配<-------->KMP 模式匹配:子串的定位运算称为串的模式匹配或串匹配. 假设有两个串S,T,设S为主串,也称正文串,T为子串,也称为模式,在主串S中查找与模式 ...
- python 重复输出字符串
阿里云大学人工智能学前小测验-Python测试 7.a ="1" b = a*2 输出b的值为 A. 1 B. 2 C. 11 D. null 我选的答案是D,结果 答案是C,因为 ...
- 在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。
在主函数中输入10个等长的字符串.用另一函数对它们排序.然后在主函数输出这10个已排好序的字符串. 解题思路: 排序方式与数字比较没什么不同,先遍历比较找出最大的字符串,与第一个字符串进行交换,然后剩 ...
- 要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9) 也不相同,每个字符串长度为10;
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; / ...
- python重复输出_Python教程第10篇: python print换行输出和python将一句话重复n次输出...
内容提要:本篇Python教程分享了两个问题的解决方法,分别是python print换行输出和python将一句话重复n次输出. 学习到现在,我们的Python教程进入第10课的学习.刚才小编在网站 ...
最新文章
- C库函数-perror()
- 阿里云服务器新手安装nginx
- Java多线程之并发容器(五)
- java 继承调用_【JAVA学习】继承中函数调用机制
- 1.5编程基础之循环控制 17:菲波那契数列--刘昕源-2019-06-23
- 2017.9.20 回文串 思考记录
- 亲历!给大龄IT人的几点求职建议
- 微信小程序支付-付款(Java后台)
- 计算机共享怎么ip设置,如何设置网络打印机共享
- C语言编程 肥宅快乐水
- Android利用NotificationListenerService实现消息盒子功能
- 计算机学情问卷调查报告,学情调查报告及调查问卷(共9篇).docx
- widows下安装pycurl并利用pycurl请求https地址
- 记一个vue v-if引起的图片加载导致样式跳动问题
- Stream流和Optional
- 原创仿虎哥说车抖音文案,抖音策划,虎哥说车文案背景音乐,房子租凭宣传文案
- 一道小学题,解答了我与学霸的差距
- android仿空间短视频播放
- 【正点原子MP157连载】第十六章 基本定时器实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
- 注会是计算机考试吗,注会考试可以自带计算器么 这几点千万要注意