黑马程序员—————关于例题“判断字符串中是否包含某个字符,如果包含,返回其首次出现的位置,否则返回-1”的一些学习总结
来源:互联网 发布:消音伴奏制作软件 编辑:程序博客网 时间:2024/05/21 07:12
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、scanf函数小结
1>scanf函数的说明及其注意事
scanf函数说明:
a. 如果使用这个函数,要包含一个头文件 stdio.h。
b.scanf函数是一个阻塞式函数:函数执行后,会等待用户的输入,如果用户不输入任何内容,它会一直等待。
scanf函数的作用:
接收用户从键盘输入的内容。
scanf函数的格式:
scanf("格式控制符",输入项的地址列表);
例如:scanf("%d",&a); 其中a是一个变量
2>scanf函数使用注意事项
scanf使用注意事项
注意:1)如果在输入时,输入了多个空格、回车、Tab都会被系统忽略的。
2)如果要获取的内容是多个整数,中间输入了多个空格、回车、Tab都会被系统忽略
特别注意:当输入是一个字符串时,输入字符串时不能在中间输入空格、回车、Tab,否则之后的字符都不会被输入。
3>scanf函数运行原理:
1)当用户输入内容后,用户输入的内容会被存放到scanf的输入缓冲区中,然后scanf函数会根据格式控制的字符的要求,从输入缓冲区一次取它想要的内容,如果从缓冲区中取的内容和我们的格式要求一致,则把值存放到变量中如果格式不一致,则不修改变量的值。
2)如果缓冲区中有内容,则不会提示我们再输入值。
4>关于scanf函数的总结:
a.如果我们的输入全都是%d类型的,那么无论我们在输入数据时时插入 空格、回车、Tab等其他字符,都会被系统忽略。
b.如果我们输入的是类型中含有%c类型等混合输入,那么就不能随便的插入 空格、回车、Tab等其他字符,要按照scanf函数的格式来从键盘输入。
例如:
scanf("%d%c%d",&a,&ch&b);
从键盘输入的格式如下:
21a34(回车)
小结:所以一般在混合的scanf函数书写时最好使用如下格式:这样不仅安全而且我们输入时也清楚明了。
建议格式:scanf("%d,%c,%d",&a,&ch,&b);
从键盘输入的格式:21,a,34
总之在输入时,一定按照scanf的“格式控制符”的格式一 一输入。
示例如下:
实现功能:判断字符串中是否包含某个字符,如果包含,返回其首次出现的位置,否则返回-1
说明:为了使程序更加灵活改进如下:
1>让用户自己输入 字符串
2>让用户自己输入要查找 字符
例1
打印如下:
当找不到的打印如下
例2
打印如下:
注意:
例1和例2是同一个例题,但是打印出来却是大不同,俩个程序的差别就是在scanf函数的格式不同
例1中的scanf形式为scanf("%s %c",str,&c)而例2中的scanf形式为scanf("%s,%c",str,&c)。scanf("%s,%c",str,&c)形式在上面是我们推荐使用的一个格式但是为什么会出错?这个问题就在于scanf("%s,%c",str,&c)中是%s而不是%d、%c
这是为什么,我个人觉得因为是当输入asdfg,f时,由于在scanf("%s,%c",str,&c)中第一个格式控制符是%s,是输入字符串的所以即使输入中有’,‘但是依然会把’,‘看做是普通字符。
例1就是巧妙的应用了输入字符串时的特性(输入字符串时中间不能加 空格、回车、Tab,否则后面的字符无法输入),所以在scanf("%s %c",str,&c)不是用逗号来隔开的而是用空格来隔开的。同样你用Tab隔开%s和%c也是可以的。难道就不能用逗号?
使用逗号来隔开%s和%c的用法:
例3
打印如下:
打印图1
打印图2
打印图3
总结:通过对比例2和例3发下,例3使用逗号来隔开%c,%s,scanf("%c,%s",&c,str)可以完成程序要求,例3的成功是因为%c和%s交换了位置。这样为什么可以?
分析:当我们输入a,kjgsdfa时,a存储到了字符区,kjgsdfa存储到了字符串区,所以这样是可以的。
通过打印图1和打印图3比较可以知道,我们必须按照scanf("%c,%s",&c,str)的格式来输入,是逗号就用逗号,是空格就用空格,这和我们前面的说明是一致的。当然scanf("%c,%s",&c,str)中的','也可以被空格、Tab代替来使用。
建议:当用scanf函数有%c,%d,%s混合的输入时,推荐使用此格式:scanf("%d,%c,%s",&a,&ch,str);
- 黑马程序员—————关于例题“判断字符串中是否包含某个字符,如果包含,返回其首次出现的位置,否则返回-1”的一些学习总结
- 练习2-5 编写函数any(s1,s2),将字符串s2中的任一字符在字符串s1中第一次出现的位置作为结果返回。如果s1中不包含s2的字符,则返回-1。
- 练习 2-5 编写函数 any(s1, s2),将字符串 s2 中的任一字符在字符串 s1 中第一次 出现的位置作为结果返回。如果 s1 中不包含 s2 中的字符,则返回-1。
- 练习 2-5 编写函数 any(s1, s2),将字符串s2中的任一字符在字符串s1中第一次出现的位置作为结果返回。如果s1中不包含s2中的字符,则返回-1。
- 练习 2-5 编写函数 any(s1, s2),将字符串s2中的任一字符在字符串s1中第一次出现的位置作为结果返回。如果s1中不包含s2中的字符,则返回-1。
- 练习 2-5 编写函数 any(s1, s2),将字符串 s2 中的任一字符在字符串 s1 中第一次 出现的位置作为结果返回。如果 s1 中不包含 s2 中的字符,则返回-1
- 给定字符串 str,检查其是否包含数字,包含返回 true,否则返回 false
- strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
- 4.1编写函数strindex(s,t)它返回字符串t在s中最右边出现的位置。如果s中不包含t,则返回-1。
- 4.1编写函数strindex(s,t)它返回字符串t在s中最右边出现的位置。如果s中不包含t,则返回-1。
- 在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递
- 黑马程序员——字符包含、两字符字符包含判断:应用于密码设置的限定等
- iOS开发—判断NSString是否包含某个字符串
- iOS开发—判断NSString是否包含某个字符串
- iOS开发—判断NSString是否包含某个字符串
- 判断字符串中是否包含特定字符的方法总结
- java中判断一个字符串是否包含另外一个字符串,如果包含,计算出字符串的开始位置
- 算法4— 判断一个字符串里是否包含另一个字符串所有的字符
- 黑马程序员 GUI图形用户界面
- 传智播客到底在坚持什么?
- Thinking in Java 第七章 多态 第八章:接口与内部类 第九章:异常处理
- GRE写作必备句型
- Linux下启动停止查看杀死Tomcat进程
- 黑马程序员—————关于例题“判断字符串中是否包含某个字符,如果包含,返回其首次出现的位置,否则返回-1”的一些学习总结
- 2012年5月SAT香港真题解析
- 大话设计模式(十四 设计模式不能戏说!设计模式怎就不能戏说?)
- 史上最全的互联网专业词语汇总,小白必备,人手一套!
- php和phpredis安装
- Spring@Autowired注解与自动装配
- NYOJ 14 会场安排问题
- 最大最小公倍数
- iOS 的事件处理