1·2 C语言的标识符和字符数据、字符串数据 本节的任务是掌握用printf()函 数在屏幕的任意位置打印字 符组成的图案。 1·2·1 C语言的字符串数据、字符数据和转义字符 • 例1_1_2 用printf()输出字符串和转义字符 • /* 1_1L2.C */ • #include:stdio.h“ • main() • { • printf(“***************************************\n“); • printf(“* 我们立志成为祖国需要的高技术工人! *\n“); • printf(“***************************************\n“); • } • 请学生在机上录入并运行上述程序 创新练习 • 将程序体当中printf里右边双引号前的“\n” 都删掉,再存盘并编译运行。看看前后 两个程序的运行结果有什么不同? • 请同学们运行后讨论,并下结论! 字符串、字符、转义字符 •这些用英文中的双引号括起来的英文、数码、汉字以及可以由键 盘输入的一切字符,以及它们的混合字符,在C语言中统统称作 字符串,因为它们是用英文双引号串起来的一串字符或数字。 •比如,“12Aca”、“1”、“a”……都叫做字符串。在C语言中大写的英文 字母与小写的英文字母被规定为不同的字符。而且,字符是指单 个的、用英文单引号括起来的。如‘a’、‘A’、‘2’等等。这里有必要 注意:“a”与‘a’是两种不同类型的数据,前一个称为字符串;后一 个称为普通字符(也简称为字符)。也可以这样认为:仅仅是用 双引号括起来的就是字符串、用单引号括起来的就是普通字符; 这是两种不同的数据。用单引号是不能括起多于一个字符的! •在程序1_1L2.C 的printf语句里面的字符串末尾都有一个\n(反斜杠 和n)这种用反斜杠开头后跟一个或多个字符组成的复合字符, 在C语言中称为转义字符(即在一些普通字符前加一个反斜杠, 使普通字符的含意转变了)。如转义字符\n表示换行(实际执行 时变成回车并换行),\r表示回车但不换行。转义字符大都表示 操作动作的控制字符。见第一章附录二。 1·2·2 C语言的字符集、标识符 • 由英文字母、数码、规定的一些符号(见下表-1)组 成的字符集合,称为C语言的字符集。 • 由C语言字符集里的字符组成的,在程序中使用 的,标识(表达)某种意思的短语、缩略语、词汇 ,这种标识编程者思想的符号,在C语言中称为标识 符。在C语言里,规定了任何一个标识符都要先定义 再使用,Turbo C规定标识符定义时要求必须以字母 或下划线开头,后跟字母、数字或下划线,长度最 多32个字符。 • 符 号 名 称 符号列表 数量 运 算 符+ - * / % 5 标 点 符 , . : ; ? “ ‘ 7 空 白 符(空格)、制表符 2 括 号 ( ) [ ] { } 6 关系运算符 3 其它符号 $ | # \ • printf(“* *\n”); /*2个*号中间有13个空隔*/ • printf(“* *\n”); /* 同上 */ • printf(“* * * * * * * *\n“); • printf(“\n\r“); • } • 上面这个平面图形是非常简单的,特别 是中间两行左右两个字符‘*’相隔很近,中 间的空格只有13个。 • 如果中间的空格有六、七十个,难道我 们也照打六、七十个空格?怎么办? • 可不可以不用照打那么多个空格?(由 学生讨论回答) 例1_1_3解法2 • /* 1_1L3_2.C */ • #include“stdio.h“ • main( ) • { • printf(“* * * * * * * *\n“); • printf(“%c%14c\n”,‘*’,‘*’); /*为什么是14C? */ • printf(“%c%14c\n“,'*','*'); • printf(“%s\n“,“* * * * * * * *“); • } 格式声明符 • 第一个printf()是直接打印字符串常量,字符串常 量和转义字符是printf()函数可以直接打印的数据 。第四个printf()是以字符串量的格式打印字符串 量。字符串在英文中写成string,取其首字符s, 前面再加一个%,构成printf()的指定输出字符串量 的格式声明符。%s是指定输出字符串量的格式声 明符,那么对于第二、第三行的%c,同学们猜一 猜应该是指定输出什么量的格式声明符? printf()使用格式声明符输出指定的 量时,括号里面的规律是什么? • 用双引号把格式声明符包括起来, 如果后面的 输出量打印完后,希望下一个量在另一行打印, 则在双引号里的字符串最后,也可以写上转义字 符\n。这对双引号的后面,用英文逗号和后面的 输出量隔开,双引号里面一个格式声明符,就对 应后面的一个输出量,它们是一一对应的!如果 后面的输出量有多个,输出量之间,也要用英文 的逗号间隔。 域 宽 • 还有一个:%14c表示什么意思?其实这是在格式 声明符中间插入了一个整数,大家可以从程序的 运行结果看到,它使得后面的字符'*'共占据了14 格的宽度,我们称这个14为域宽。%14c表示它对 应的打印字符共占14格的宽度,打印字符本身只 占1格,不够14格那么长,就在它的前面自动加 上13个空格,补到共占14格的宽度。 • 现在请同学们想一想:对于字符串量的格式 声明符,会不会也有域宽? 创新练习 • 例1_1_3解法1、2所生成的正方形图案,其每一行 的首位置都是在屏幕最左边第一列上的。现在, 我们想将其每一行的首位置打印在屏幕左边数起 的第11列上(即是把图案整个向右移动10列)如 何修改这个例题,使这个想法得以实现? 请同学们在机上练习! 1·2·4 源程序书写规范 •⑴程序体中,每行缩进2个空格,不要以制表符来缩进。每个模 块写成锯齿型;模块之间空一行。 •⑵每行右边最多到80列,超过的应该换行,换行后应缩进。 •⑶大括号{、}分别占1行,成对的大括号应该位于同一列上。 •⑷小括号(、)前后都不要留空格。 •⑸所有的注释都用中文书写,使用/*……*/包括。凡是整个模块的 注释写在整个模块的前面,并独占一行;凡是某句的注释写在该 句的后面同一行上,超过80列也要换行并缩进到/*的后面。 •⑹所有标识符的命名遵照匈牙利符号表示法:前面用表示数据类 型的指定的前缀、后跟表示数据用途的英文单词。 课堂练习: • 打印如下的字符图形,开始可以不用域宽,最后 要求一定使用域宽简化程序。 • OOO • OO OO • OO OO • OO OO • OO OO • OO OO • OO OO 例1_1_4 使用域宽打印上图平面图形 •分析:假设上述图形的第一行的三个大写字母O在它们所在行共 占20格(即域宽为20,其实,这是可以任由程序员自己设置的) 。图形的第二行的第一对OO,其最后一个O从第一行的设定可以 推出在第18格,所以第二行的第一对OO其域宽是18;第二对OO 共占有3格的宽度,其域宽是3。如下图: • 图形的第一行: OOO 它在第20格 •第二行: OO OO • 在第18格 共占3格 •第三行: OO OO • 在第17格 共占5格 • 第四行: OO OO • 在第16格 共占7格 • …… …… •很容易推出以后各行的第一对OO总要靠前一格,即域宽比上一行少1;而各行 的第二对OO,要往后靠一格,它的前面与第一对OO又多了一个空格,因此, 域宽总比上一行的第二对OO多了2;这样以下各行就很容易写出来了。图形共 有7行,写7个printf()语句即可。程序如下: • /* 1_1L4.C */ • #include •main() • { • printf(“%20s\n“,“OOO“); • printf(“%18s%3s\n“,“OO“,“OO“); • printf(“%17s%5s\n“,“OO“,“OO“); • printf(“%16s%7s\n“,“OO“,“OO“); • printf(“%15s%9s\n“,“OO“,“OO“); • printf(“%14s%11s\n“,“OO“,“OO“); • printf(“%13s%13s\n“,“OO“,“OO“); • } 课堂练习: • 请做一做本节的课后作业与练习。 (如注意找规律的话,用域宽来写 这些程序是不困难的) 下次课再见!

展开阅读全文

14c语言合并两个字符串,C语言的标识符和字符数据、字符串数据.ppt相关推荐

  1. R语言合并两个或多个有序数dataframe实战(dataframe的纵向合并):使用R原生方法、data.table、dplyr等方案

    R语言合并两个或多个有序数dataframe实战(dataframe的纵向合并):使用R原生方法.data.table.dplyr等方案 目录

  2. c语言 数组二合一,C语言合并两个数组并去重

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 给定含有m.n个元素的两个有序(非降序)整型数组a和b. 合并两个数组中的元素到整型数组c ...

  3. R语言str_subset函数和str_which函数:str_subset函数提取字符串向量中所有包含匹配字符的字符串、str_which函数返回字符串向量中所有包含匹配字符的位置(索引)

    R语言str_subset函数和str_which函数:str_subset函数提取字符串向量中所有包含匹配字符的字符串.str_which函数返回字符串向量中所有包含匹配字符的位置(索引) 目录

  4. 2021-12-27 Java String contains() 方法用于判断字符串中是否包含指定的字符或字符串。用.toLowerCase().contains忽视大小写。

    一.public boolean contains(CharSequence chars) contains() 方法用于判断字符串中是否包含指定的字符或字符串. 二.返回值        如果包含指 ...

  5. c语言字符串定界符,关于c ++:按字符分割字符串

    我知道这是一个非常简单的问题,但我只想一次为自己解决 我只想使用字符作为分割定界符将字符串分割成数组. (很像C#著名的.Split()函数.我当然可以应用蛮力方法,但是我想知道是否有什么更好的方法了 ...

  6. 用c语言编写两整数乘积,c语言两个数相乘求积 c语言输入两个整数求乘积

    C语言中求两数相乘的程序? 思路:double类型的范围: -1.7*10(-308)-1.7*10(308),如果两个数的乘积不超过这样的精度,可以直接使用*符号进行运算. 参考代码: #inclu ...

  7. c语言 读入两个数组,c语言:读入两个学生的情况存入结构数组。

    c语言:读入两个学生的情况存入结构数组. 答案:4  信息版本:手机版 解决时间 2019-10-02 07:01 已解决 2019-10-01 20:38 读入两个学生的情况存入结构数组,每个学生的 ...

  8. android——rxjava异步Consumer类似promise、重试机制、网络请求失败重试、合并两个异步都完成才往下运行、实现数据缓存优先加载

    1.rxjava异步Consumer 导入fxjava包: implementation 'io.reactivex.rxjava3:rxjava:3.0.6' // rxBinding已经依赖了rx ...

  9. 判断字符串中是否含有并一个字符或字符串

    <script type="text/javascript">//判断字符串是否包含某个字符或字符串/** js里面有indexof()方法* es6中新增了三种方法, ...

最新文章

  1. 代码 抠图_Python装逼指南——五行代码实现批量抠图!
  2. hashmap 不释放空间_刁难问题,为什么HashMap默认容量为16加载因子为0.75
  3. esp定律手动nspack 3.7_ESP定律原理详解
  4. /usr/lib/sudo/sudoers.so must be only be writable by owner
  5. 基于Visual C++2013拆解世界五百强面试题--题5-自己实现strstr
  6. 4.Dynamics CRM 数据数量限制更改
  7. 百万年薪大佬熬夜写作,Python高级编程之反爬虫及应对方案
  8. PHP 8.0 源码编译安装 JIT 尝鲜
  9. 关于asp.net页面缓存
  10. 设置Listview行高--小技巧
  11. zend studio 10 实现代码自动换行
  12. 卸载360后残余文件无法删除
  13. spss案例教程主成分分析与因子分析及SPSS实现
  14. 英国外交部翻译教你实用口语课,让你飚出一口地道、流利英语
  15. Tableau:树状图
  16. 颜色格式转换: FFmpeg源代码简单分析:libswscale的sws_getContext()
  17. 小电科技CTO“肉山”芦宇峰:互联网过35岁就遭裁员?如何应对职业危机
  18. redis数据库(一)
  19. 签到方式出“新招”!人脸识别考勤系统
  20. 利用Sharepoint里面Mysite的Shared Pictures的图片做相册 [包括创建文件夹,上传文件]...

热门文章

  1. Javascript第三章创建数组的两种方式第一课
  2. java cookie p3p_利用P3P实现单点登录和COOKIE的跨域读写
  3. python 中主线程结束 子线程还在运行么_Python爬虫进阶(二)爬虫之多任务模块(Ⅰ)...
  4. c语言通过定义变量实现对,C语言中定义变量“#X”,X##, ##X 和“##X##”用意
  5. 监控mysql主从的工具_zabbix利用percona-toolkit工具监控Mysql主从同步状态
  6. 传说中Python最难理解的点|看这完篇就够了
  7. Java虚拟机和Dalvik虚拟机的区别
  8. 用Ultra ISO制作启动U盘装系统
  9. 介绍一个工具给大家,做网站时,经常要上传文件到外网服务器,但是上传时往往需要很长时间,如果有一个文件对比工具……...
  10. 【转】EntityFramework之领域驱动设计实践(三)