第六章 字符型数据
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1 字符型常量
字符常量在内存中占一个字节, 字符常量在内存中占一个字节,存放的是字符 代码值。 的ASCII代码值。 代码值
ASCII码对照表 码对照表
6.1 字符型常量
6.1.2 转义字符常量 转义字符常量又称反斜线字符, 转义字符常量又称反斜线字符,总是以一个反 斜线开头后跟一个特定的字符。 斜线开头后跟一个特定的字符。转义字符具有 特定的含义,不同于字符原有的意义, 特定的含义,不同于字符原有的意义,故称 转义” “转义”字符 。主要用来表示那些用一般字符 主要用来表示那些用一般字符 不便于表示的控制代码。 不便于表示的控制代码。
Press a key and then press Enter: A↙ ↙ You pressed A
ch;
printf("Press a key and then press Enter:"); printf ch = getchar getchar(); printf("You pressed "); printf putchar(ch); putchar putchar('\n'); putchar }
6.3 字符的输入和输出
注意: 注意: 字符数据可以使用%d格式输出其 格式输出其ASCII码值 字符数据可以使用 格式输出其 码值 ch = ‘A’ ; printf (“ %d\n ” , ch ) ;
示例:向字符变量赋以整数。 #include <stdio.h> 说明:在第3和第4行中,将整 说明:在第3和第4行中, 97和98分别赋给c1和c2, 分别赋给c1 数97和98分别赋给c1和c2,它的 void main() 作用相当于以下两个赋值语句: 作用相当于以下两个赋值语句: { c1= ′;c2= c1=′a′;c2=′b′; char c1,c2; 因为’a’和 b’的ASCII码为 因为’a’和’b’的ASCII码为 c1=97; 97和 97和98 c2=98; printf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } ϒ 运行结果: 运行结果:
第2次测试 Please enter the expression data1 + data2
12 12 3↙ 3↙ 3 =15
C格式符存在的问题及其解决
#include <stdio.h> main() { int data1, data2, sum; char op; printf("Please enter the expression data1 + data2\n"); data2\ scanf("%d%c%d",&data1, &op, &data2); printf("%d%c%d = %d\n", %d\ data1, op, data2, data1+data2); }
运行结果: 运行结果:BOY
也可以输出控制字符, putchar( 也可以输出控制字符,如putchar(’\n’)输 ) 出一个换行符, 出一个换行符,如果将上例最后几行改为 putchar(a); ( ); );putchar(‘\n’); ( ); putchar(b); );putchar(‘\n’); ( ); ( ); putchar(c); ( ); );putchar(’\n‘ ); ( 则输出结果为: 则输出结果为: B O Y
6.2 字符型变量
例如: 例如: char ch ; ch = ‘A’ ; ch = ch + 32 ; /*大写转小写 大写转小写*/ 大写转小写 ch ++ ; /*转换成’b’ */ 转换成’ 转换成
6.3 字符的输入和输出
6.3.1 调用 调用printf和scanf函数输出和输入字符 和 函数输出和输入字符 printf函数使用格式: 函数使用格式: 函数使用格式 ch = ‘A’ ; printf (“ %c\n ” , ch ) ;
第六章 字符型数据
6.1 字符型常量
6.1.1 字符常量 语言中, 在C语言中,用单引号把一个字符括起来就是 语言中 字符常量。 字符常量。 例如: 例如:’A’、’b’、’+’、’5’ 、 、 、
6.1 字符型常量
说明: 说明: 字符常量只能用单引号括起来, 字符常量只能用单引号括起来,不能用双引号 括起来 字符常量只能包含一个字符, 字符常量只能包含一个字符,如’abc’是非法 是非法 的 单引号中大写字母和小写字母代表不同的字符 常量, 常量,如’A’和’a’是不同的字符常量 和 是不同的字符常量
C格式符存在的问题及其解决
#include <stdio.h> main() { int data1, data2, sum; char op; printf("Please enter the expression data1 + data2\n"); data2\ scanf("%d%c%d",&data1, &op, &data2); printf("%d%c%d = %d\n", %d\ data1, op, data2, data1+data2); }
6-4 程序举例
以下程序输出26个大写字母和它们的 个大写字母和它们的ASCII代码,每行 代码, 例6-1 以下程序输出 个大写字母和它们的 代码 输出两组数据。 输出两组数据。 #include<stdio.h> main() { char ch ; int i ; for ( i=0; i<26; i++ ) { ch = i+65 ; if ( i%2 == 0 ) printf(“\n”); printf(“c=%c ASCII=%d” , ch , ch ) ; } putchar ( ‘\n’ ) ; }
第1次测试 Please enter the expression data1 + data2
12 + 3↙ 3↙ 12 3129 = 3141
C格式符存在的问题及其解决
#include <stdio.h> main() { int data1, data2, sum; char op; printf("Please enter the expression data1 + data2\n"); data2\ scanf("%d%c%d",&data1, &op, &data2); printf("%d%c%d = %d\n", %d\ data1, op, data2, data1+data2); }
ϒ C程序中需要打印或显示ASCII表中非键盘字符 程序中需要打印或显示ASCII ASCII表中非键盘字符
时 如 printf(“ Look \16 and \x80 !”);
6.1 字符型常量
6.1.3 可对字符常量进行的运算 语言中, 在C语言中,字符常量可参与任何整数运算 语言中 例如: 例如: 66 – 65 1 ‘B’ – ‘A’ ‘A’ + 2 65 + 2 67 大小写转换: 大小写转换: 97 ‘a’ ‘A’ + 32 ‘a’ - 32 65 ‘A’ 数字字符与整数的转换: 数字字符与整数的转换: 9 ‘9’ – ‘0’ 9 + ‘0’ 57 ‘9’
什么时候要使用转义字符?
转义字符只在特殊情况下才使用: 转义字符只在特殊情况下才使用: ϒ C程序中需要实现某些特定打印或显示动作时 printf(“123\t56\n”); 如 ϒ C程序中需要打印或显示以下三个字符时 \ (斜杠 " (双引号 斜杠) 双引号) ' (单引号 单引号) 斜杠 双引号 单引号 printf(“You’re a \”a bad 如 egg!\” ” );
putchar函数示例: putchar函数示例: 函数示例 输出项可以是字符型变量或整型变量。 输出项可以是字符型变量或整型变量。
例 #include “stdio.h” main() () { char a,b,c; a=‘B’;b=’O’;c=’Y’; ; ; putchar(a); ( ); putchar(b); ( ); putchar(c); ( ); }
6.3 字符的输入和输出
getchar函数用于输入字符,调用形式如下: 函数用于输入字符,调用形式如下: 函数用于输入字符 char ch ; ch = getchar( ) ; /*等价于 等价于 scanf(“%c”,&ch);*/
示例
#include main() { char <stdio.h>
编写程序统计输入的字符中空格符、 例6-4 编写程序统计输入的字符中空格符、换行符 和横向跳格(制表)符的个数, 号结束输入。 和横向跳格(制表)符的个数,用!号结束输入。 #include<stdio.h> #include<ctype.h> main() { long n=0; char ch; while((ch=getchar()) != ‘!’) if(isspace(ch)) n++; printf(“n=%ld\n”,n); }
6.3 字符的输入和输出
scanf函数使用格式: 函数使用格式: 函数使用格式 scanf ( “ %c ” , 输入项 ) ; 例如: 例如: char ch ; scanf ( “ %c ” , &ch ) ;
6.3 字符的输入和输出
注意:在连续输入多个字符时, 注意:在连续输入多个字符时,字符之间不要输入 间隔符(空格、回车、 键等)。 间隔符(空格、回车、TAB键等)。否则间隔符本 键等)。否则间隔符本 身也将作为字符输入。 身也将作为字符输入。 例如 : char ch1 , ch2 , ch3 ; scanf ( “ %c%c%c ” , &ch1,&ch2,&ch3) ; 若要输入字符’ 、 若要输入字符’A’、’B’、’C’,正确输入方法是: 、 ,正确输入方法是: ABC<CR> /*CR表示回车 表示回车*/ 表示回车
6.2 字符型变量
语言中, 在C语言中,字符型变量用关键字 语言中 字符型变量用关键字char进行定 进行定 义 格式: 格式: char 字符型变量名 例如: 例如: char ch ; ch = ‘A’ ;
6.2 字符型变量
说明: 说明: 字符型变量在内存中占一个字节, 字符型变量在内存中占一个字节,存放字符的 ASCII码值,可以参与整型变量所允许的任何 码值, 码值 运算。 运算。
常用的转义字符及其含义
转义字符 \n \t \b \r \f \\ \' \” \a \ddd \xhh 回车换行 横向跳到下一制表位置 退格 回车 走纸换页 反斜线符"\" 反斜线符 单引号符 双引号符 鸣铃 1~3位八进制数所代表的字符 ~ 位八进制数所代表的字符 1~2位十六进制数所代表的字符 ~ 位十六进制数所代表的字符 转义字符的意义 ASCII代码 代码 10 9 8 13 12 92 39 34 7
a 97 b 98
典型试题
有以下程序: 有以下程序: #include <stdio.h> main() { char c1,c2; c1=’A’+’8’-‘4’; c2=’A’+’8’-‘5’; printf(“%c,%d\n”,c1,c2); } 已知字母A的 码为65, 已知字母 的ASCII码为 ,程序运行后的输出结果 码为 是 A)E,68 ) B)D,69 )
第3次测试 Please enter the expression data1 + data2
12+3↙ 12+3↙ 12+3 =15
6.3 字符的输入和来自百度文库出
6.3.2 调用 调用putchar和getchar函数输出和输入字 和 函数输出和输入字 符 putchar用于输出字符,调用形式如下: 用于输出字符, 用于输出字符 调用形式如下: char ch ; ch = ‘A’ ; putchar ( ch ) ; /* 等价于 等价于printf(“%c”,ch); */
例6-3:编写程序, :编写程序, 将输入的一行字 符中所有的小写 符中所有的小写 字母转换成大写 字母, 字母,其它字符 不变。 不变。
#include <stdio.h> main() { char c; while((c=getchar())!=‘\n’) { if(c>='a' && c<='z') c=c-'a'+'A'; putchar(c); c=(c>=‘a’&&c<=‘z’)?(c-32):c; } putchar(‘\n’); } if(islower(c)) c=c-’a’+’A’;