实验09字符串.docx
- 文档编号:12091815
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:13
- 大小:29.49KB
实验09字符串.docx
《实验09字符串.docx》由会员分享,可在线阅读,更多相关《实验09字符串.docx(13页珍藏版)》请在冰豆网上搜索。
实验09字符串
实验09-字符串
实验九字符串程序设计
班级:
学号:
姓名:
评分:
一.【实验目的】
1、熟练掌握字符串的存取和操作方法方法。
2、进一步掌握C程序的调试方法和技巧。
二.【实验内容和步骤】
1、程序调试题
A.目标:
进一步学习掌握程序调试的方法和技巧。
B.内容:
参照《实验指导》教材P71“1.调试示例”,从键盘输入一个以回车键结束的字符串(少于80个字符),将它的内容逆向输出。
例如:
输入“ABCD”,输出“DCBA”。
改正程序中的错误,使其实现程序的功能。
(注:
程序文件保存在“调试示例”文件夹中,文件名为error08_1.cpp)
①调试正确的源程序清单
#include
intmain()
{
inti,k,temp;
charstr[80];
printf("inputastring:
\n");
i=0;
while((str[i]=getchar())!
='\n')
i++;
str[i]='\0';
k=i-1;
for(i=0;i temp=str[i]; str[i]=str[k]; str[k]=temp; k--; }/*调试时设置断点*/ for(i=0;str[i]! ='\0';i++) putchar(str[i]); printf("\n"); return0; } ②运行结果: (提示: 通过屏幕截图,贴粘程序运行界面)。 2、完善程序,并调试运行程序 题目 (1)求字符串长度。 程序功能: 连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部输入结束。 统计并输出每个字符串的有效长度。 例如: 输入: hello12#abc+0##,表示连续输入2个字符串"hello12"和"abc+0"。 输出: 85。 (注: 程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 ①调试正确的源程序清单 //程序功能: 连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部输入结束,统计并输出 //每个字符串的有效长度。 例如: //输入: hello12#abc+0##,表示连续输入2个字符串"hello12"和"abc+0"。 //输出: 85。 //提示: 除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include"stdio.h" #defineMAXLEN80 intmain() { intlen,count,i,k; charch,oldch,str[MAXLEN]; oldch=''; while((ch=getchar())! ='#'||oldch! ='#') { k=0; while(ch! ='#'&&k { str[k++]=ch; ch=getchar(); } oldch='#'; str[k]='\0'; //请在两条星线之间填入相应的代码,输出该字符串并统计其长度。 /*********************************************************/ len=0; k=0; while(str[k]! ='\0'){ len++; k++; } /*********************************************************/ printf("%d\n",len); } } ②运行结果: (提示: 通过屏幕截图,贴粘程序运行界面)。 题目 (2)统计大写辅音字母。 程序功能: 连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部输入结束。 统计并输出每个字符串中大写辅音字母的个数(大写辅音字母: 除'A','E','I','O','U'以外的大写字母)。 例如: 输入HELLO#IT12#uieiaba##,表示连续输入3个字符串,输出310。 (注: 程序文件保存在“第2题”文件夹中)打开proj2.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 ①调试正确的源程序清单 //程序功能: 连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部输入结束。 统计并输出 //每个字符串中大写辅音字母的个数。 //大写辅音字母: 除'A','E','I','O','U'以外的大写字母。 //例如: 输入HELLO#IT12#uieiaba##,表示连续输入3个字符串,输出310。 //提示: 除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include"stdio.h" #defineMAXLEN80 intmain() { intcount,i,k; charch,oldch,str[MAXLEN]; oldch=''; while((ch=getchar())! ='#'||oldch! ='#') { k=0; while(ch! ='#'&&k { str[k++]=ch; ch=getchar(); } oldch='#'; str[k]='\0'; //请在两条星线之间填入相应的代码,统计字符串str中大写辅音字母的个数。 /******************************************************************/ i=0; count=0; while(str[i]! ='\0'){ if(str[i]>='A'&&str[i]<='Z') if(str[i]! ='A'&&str[i]! ='E'&&str[i]! ='I'&&str[i]! ='O'&&str[i]! ='U') count++; i++; } /******************************************************************/ printf("%d\n",count); } } ②运行结果: (提示: 通过屏幕截图,贴粘程序运行界面)。 题目(3)查找字符。 程序功能: 输入一个字符并回车,再连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部输入结束。 在每个字符串中查找该字符,如果找到,则输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出“NotFound”。 (注: 程序文件保存在“第3题”文件夹中)打开proj3.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 例如: 括号内是说明 输入: m(输入一个字符) moon#programming#1234##(输入3个字符串"moon","programming","1234") 输出: 0(m在"moon"中对应的最大下标是0) 7(m在"programming"中对应的最大下标是7) NotFound("1234"中没有m) ①调试正确的源程序清单 //程序功能: 输入一个字符并回车,再连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则 //全部输入结束。 在每个字符串中查找该字符,如果找到,则输出该字符在字符串中所对应 //的最大下标(下标从0开始);否则输出"NotFound"。 //提示: 除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include"stdio.h" #defineMAXLEN80 intmain() { intcount,i,k,flag,sub; charcc,ch,oldch,str[MAXLEN]; oldch=''; cc=getchar();//读一个字符 getchar();//读回车符 while((ch=getchar())! ='#'||oldch! ='#') { k=0; while(ch! ='#'&&k { str[k++]=ch; ch=getchar(); } oldch='#'; str[k]='\0'; //请在两条星线之间填入相应的代码,在字符串str中查找cc中包含的字符位置。 /********************************************************************/ i=0;flag=0; while(str[i]! ='\0'){ if(str[i]==cc){ sub=i; flag=1; } i++; } /********************************************************************/ if(flag)printf("%d\n",sub); elseprintf("NotFound\n"); } } ②运行结果: (提示: 通过屏幕截图,贴粘程序运行界面)。 题目(4)字符串替换。 程序功能: 连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部输入结束。 将每个字符串中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串。 (注: 程序文件保存在“第4题”文件夹中)打开proj4.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 原字母对应字母: A──→Z B──→Y C──→X D──→W …… X──→C Y──→B Z──→A 例如: 括号内是说明 输入: AflagofUSA#IT12#oueiaba##(连续输入3个字符串) 输出: ZflagofFHZ RG12 oueiaba ①调试正确的源程序清单 //程序功能: 连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部输入结束。 将每个字符串 //中的大写字母用题中规定的对应大写字母替换,其余字符不变,输出替换后的字符串。 //提示: 除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include"stdio.h" #include"string.h" #defineMAXLEN80 intmain() { inti,k; charch,oldch,str[MAXLEN]; oldch=''; while((ch=getchar())! ='#'||oldch! ='#') { k=0; while(ch! ='#'&&k { str[k++]=ch; ch=getchar(); } oldch='#'; str[k]='\0'; //请在两条星线之间填入相应的代码,将字符串str中的大写字母用题中规定的 //对应大写字母替换,其余字符不变。 /********************************************************************/ i=0; while(str[i]! ='\0'){ if(str[i]>='A'&&str[i]<='Z') str[i]='A'+'Z'-str[i]; i++; } /********************************************************************/ puts(str); } } ②运行结果: (提示: 通过屏幕截图,贴粘程序运行界面)。 题目(5)十六进制转换十进制。 程序功能: 连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部输入结束。 对每个字符串做如下处理: 滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出。 (注: 程序文件保存在“第5题”文件夹中)打开proj5.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 例如: 括号内是说明 输入: 10#Pf4+1#-+A##(连续输入3个字符串) 输出: 16 3905 10 ①调试正确的源程序清单 #include"stdio.h" #defineMAXLEN80 intmain() { inti,k; longnumber; charch,oldch,str[MAXLEN],num[MAXLEN]; oldch=''; while((ch=getchar())! ='#'||oldch! ='#') { k=0; while(ch! ='#'&&k { str[k++]=ch; ch=getchar(); } oldch='#'; str[k]='\0'; //请在两条星线之间填入相应的代码,滤去字符串str中所有的非十六进制字符后,组 //成一个新字符串(十六进制形式),然后将其转换为十进制数。 /**************************************************************************/ for(i=0,k=0;str[i]! ='\0';i++) if((str[i]>='0'&&str[i]<='9')||(str[i]>='A'&&str[i]<='F')||(str[i]>='a'&&str[i]<='f'))num[k++]=str[i]; num[k]='\0'; for(i=0,number=0;num[i]! ='\0';i++) if((str[i]>='0'&&str[i]<='9'))number=number*16+(num[i]-48); elseif((str[i]>='A'&&str[i]<='F'))number=number*16+(num[i]-55); elsenumber=number*16+(num[i]-87); /**************************************************************************/ printf("%ld\n",number); } } ②运行结果: (提示: 通过屏幕截图,贴粘程序运行界面)。 三.【实验总结】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 09 字符串