《字符与字符串09114.ppt》由会员分享,可在线阅读,更多相关《字符与字符串09114.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 格式:getchar()功能:从键盘读一字符例 /*1.c*/#include main()int c;printf(Enter a character:);c=getchar();printf(%cn,c);运行结果:Enter a character:AA字符输入1-函数输入地址表:变量的地址,常用取地址运算符例 scanf(“%c”,&a);输入:11 则 a=11字符输入2-格式输入函数格式:scanf(“%c”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束 说明:用“%c”格式符时,空格和转义字符作为有效字符输入如 scanf(“%c%c%c”
2、,&c1,&c2,&c3);若输入abc 则ac1,空格c2,b c3例 从键盘输入大写字母,用小写字母输出#include stdio.hmain()char c1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%dn,c2,c2);输入:A 输出:A,65 a,97附加格式说明符(修饰符m.n)例 int a=1234;float f=123.456;char ch=a;printf(“%8d,%2dn”,a,a);printf(“%f,%8.1f,%.2fn”,f,f,f);printf(“%3cn”,ch);运行运行 1
3、234,1234结果:结果:123.456000,123.5,123.46 a例 m.n(对实数)例 static char a=“Hello,world!”printf(“%10.5sn%2.5sn%.3sn”,a,a,a);运行结果:Hello Hello Hel 例 m.n(对字符串)字符数组v定义 v字符数组的初始化l逐个字符赋值l用字符串常量例例 char c10 例 char ch5=H,e,l,l,o;ch0Hello逐个字符赋值ch1ch2ch3ch4有问题!例 char ch5=H,e,l,l,o;ch0Hello逐个字符赋值ch1ch2ch3ch4 例 char ch5=B
4、,o,y;ch0Boy00逐个字符赋值ch1ch2ch3ch4 例 char ch5=“Boy”;ch0Boy00用字符串常量ch1ch2ch3ch4 例 char ch6=“Hello”;char ch6=“Hello”;char ch=“Hello”;用字符串常量ch0Helloch1ch2ch3ch40ch5 字符数组和字符串#include main()char c10=I,a,m,a,b,o,y;int i;for(i=0;i10;i+)printf(%c,ci);printf(n);Iamaboy0123456789例 输出一个字符数组字符串及其结束标志l无字符串变量,用字符数组处
5、理字符串l字符串结束标志:0“hello”共5个字符,在内存占6个字节,字符串长度5 h e l l o 0104 101 108 108 111 0内存存放字符ASCII码字符串例 用%c main()char str5;int i;for(i=0;i5;i+)scanf(“%c”,&stri);for(i=0;i5;i+)printf(“%c”,stri);字符串的输入输出-逐个字符%c运行情况:输入:abcde输出:abcde例 用%s main()char str5;scanf(“%s”,str);printf(“%s”,str);用字符数组名,遇0结束字符串的输入输出-%s输入字符串
6、%s输入会在字符串后输入会在字符串后自动加自动加0例 main()char a5=H,e,l,l,o;printf(“%s”,a);例 main()char a=“Hello”;printf(“%s”,a);结果:Hello#-=*h e l l o02314结果:Hello用“%s”输出时,遇0结束main()char a=h,e,l,0,l,o,0;printf(%s,a);输出:hel h e l 0 l o 0数组中有多个0时,遇第一个结束 H o w 0 a r e 0 y o u?0#include main()char a15,b5,c5;scanf(%s%s%s,a,b,c);
7、printf(a=%snb=%snc=%sn,a,b,c);scanf(%s,a);printf(a=%sn,a);运行情况:输入:How are you?输出:a=How b=are c=you?输入:How are you?输出:a=Howscanf中%s输入时,遇空格或回车结束运行情况:输入:How are you?例 字符串输入举例字符串长度函数strlen格式:strlen(字符数组)功能:计算字符串长度返值:返回字符串实际长度,不包括0在内例 对于以下字符串,strlen(s)的值为:(1)char s10=A,0,B,C,0,D;(2)char s=“tv0willn”;(3)c
8、har s=“x69082n”;循环型程序设计whiledo while for一般形式:while(表达式)循环体语句;执行流程:expr循环体假(0)真(非0)whilewhile语句#include stdio.h void main()char ch;int num=0;ch=getchar();while(ch!=n)判断是否输入结束判断是否输入结束num+;ch=getchar();printf(num=%dn,num);【例例】统计从键盘输入的一行字符的个数统计从键盘输入的一行字符的个数(以回车键作为输入结束标记)。(以回车键作为输入结束标记)。/*ch5_2.c*/#inclu
9、de main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%d,sum);循环初值循环终值循环变量增值循环条件循环体例 用while循环求1+2+.+100do-whiledo-while语句语句1、do-while的形式:的形式:do 循环体;循环体;while(表达式);表达式);2、do-while语句语句 常称常称为为“直到型直到型”循环语句。循环语句。真真(非零非零)表达式表达式 循环体循环体假假(零零)例 用dowhile循环求/*ch5_3.c*/#include main()int i,sum=0;i=1;do sum+=
10、i;i+;while(i=100);printf(%d,sum);#include main()int i,sum=0;scanf(%d,&i);do sum+=i;i+;while(i=10);printf(%d,sum);main()int i,sum=0;scanf(%d,&i);while(i=10)sum+=i;i+;printf(%d,sum);例 while和dowhile比较for语句v一般形式:for(expr1;expr2;expr3)循环体语句;v执行流程:expr2循环体假(0)真(非0)forexpr1expr3vfor语句一般应用形式:for(循环变量赋初值;循环条
11、件;循环变量增值)循环体语句;expr1;while(expr2)循环体语句;expr3;例 用for循环求#include main()int i,sum=0;for(i=1;i=100;i+)sum+=i;printf(%d,sum);1.c 求出以下分数序列的前n项之和。1/2,2/3,3/5,5/8,8/13,13/21,.例如,若n的值为:5,则应输出3.00705112233558813+真题06 试题二 试题三07 试题五2.c反序11/*函数fun的功能是:使输入的一个字符串按反序存放,并在主函数中输出。*/#include#include main()char str100;
12、printf(Input string:);scanf(%s,str);fun(str);printf(The result:%sn,str);fun(char str)char t;int i,j;for(i=0,j=strlen(str)-1;i+,)t=stri;stri=strj;2.c反序22.本程序通过调用函数本程序通过调用函数inv()将数组将数组a中的元素头尾倒置过来。中的元素头尾倒置过来。例如:若倒置前数组例如:若倒置前数组a中原来的元素为中原来的元素为1,3,5,2,4和和6,则头尾倒置后数组,则头尾倒置后数组a的元素变的元素变为为6,4,2,5,3和和1。假设数组假设数组
13、a的初值就是的初值就是1,3,5,2,4,6这六个数,在程序运行时输入。请将源程序补充这六个数,在程序运行时输入。请将源程序补充完整,要求得到正确的结果。完整,要求得到正确的结果。void inv(int x,int n)main()int a10=4,5,6,7,8,9,10,11,12,88;int i;printf(The original array:n);for(i=0;i10;i+)printf(%3d,ai);printf(n);inv(a,10);printf(The reverse array:n);for(i=0;i10;i+)printf(%3d,ai);printf(n
14、);2.c反序3功能是:把一个小于小于32767的整数各位上的数转换成对应的数字字符,并按逆序输出。例如:输入693,输出的字符为6*9*3*。问:若输入693,输出的字符为396,程序应怎样修改?函数palindrome(chars)的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。函数2.1int palindrome(char S)int pi,pj;pi1;pjstrlen(S)-1:while(pi=0&stri=9)k=_(4)_+stri-0;+i;_(5)_;Return k;