C语言课程设计字符串处理doc.docx
《C语言课程设计字符串处理doc.docx》由会员分享,可在线阅读,更多相关《C语言课程设计字符串处理doc.docx(13页珍藏版)》请在冰豆网上搜索。
![C语言课程设计字符串处理doc.docx](https://file1.bdocx.com/fileroot1/2022-11/16/45e2cdcd-8c51-4bbc-b514-6e68087b1e01/45e2cdcd-8c51-4bbc-b514-6e68087b1e011.gif)
C语言课程设计字符串处理doc
《C语言程序设计》
课程设计报告
题目
字符串处理
学号
姓名
同组人员
年级专业
09电子信息工程2班
指导教师
完成日期
2010
年
6
月
19
日
1.C语言程序设计目的要求……………………………………………3
2.字符串处理设计要求……………...……………………………….3
3.字符串处理流程图…………………………………………………...3
4.字符串处理源程序…………………………………...………………5
5.程序分析………………………………………….…………………9
5.1头文件应用………………………………………………………9
5.2函数的应用………………………………………………………9
5.3库函数的调用…………………………………………………...10
6.程序调试截图...………………………………………………………11
7.参考资料……………………………………………………………...13
8.总结…………………………………………………………………...14
9.物理与电子信息学院课程设计评定意见…………………………15
C语言程序设计目的要求
在教师指导下,学生根据选定的课题,综合运用所学程序设计的知识,完成问题分析、模块设计、代码编写、程序调试和运行等训练任务。
通过课程设计,初步锻炼运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法以及良好的编程风格,培养在软件开发中相互合作的团队意识
字符串处理设计要求
1)从键盘输入一个英文句子并保存在字符数组中;
2)能删除多余的空格:
单词之间只留一个空格,句子前后无空格;
3)能统计某单词出现的频度;
4)能替换某个单词。
法实现也可。
字符串处理流程图
这个程序调用3个功能函数,分别起处理删除空格、查找某个单词出现频度、用一个单词替换原来的一个单词。
最后,在主程序里对这3个函数进行调用,完成函数要求的所有功能。
下面就是总的程序流程图:
字符串处理源程序
#include
#include
#include
voidDelete(charstr[])
{
inti,j,Length,StartBlank=0,EndBlank=0,MiddleBlank=0;
Length=strlen(str);
for(i=0;iif(str[i]=='')StartBlank++;
elsebreak;
for(j=0;jstr[j]=str[j+StartBlank];
Length-=StartBlank;
for(i=Length-1;i>=0;i--)/*删除后导空格*/
if(str[i]=='')EndBlank++;
elsebreak;
Length-=EndBlank;
while(EndBlank>0)
{
str[Length-1+EndBlank]=str[Length+EndBlank];
EndBlank--;
}
i=0;/*删除中间多余空格*/
while(i{
if(str[i]=='')
{
if(str[i+1]=='')
{
for(j=i+1;jstr[j]=str[j+1];
MiddleBlank++;
Length--;
}
elsei++;
}
elsei++;
}
}
voidFindCount(charstr[])
{
charFindWord[20],*p1,*p2;
intcount=0;/*查找单词出现的次数*/
printf("EnteraFindword:
\n");
gets(FindWord);
p1=str;
p2=FindWord;
while(*p1!
='\0')
{
if((*p1==*p2)&&(!
isalpha(*(p1-1))))
while((*p1==*p2)&&(*p2!
='\0'))
{p1++;p2++;}
elsep1++;
if((*p2=='\0')&&((*p1=='')||(*p1=='\0')))count++;/*所查找单词完全匹配*/
p2=FindWord;/*重置查找单词*/
}
printf("FindCount:
%d\n",count);
}
voidSwap(charstr[])
{
charSwapWord[20],FindWord[20],*p1,*p2;
intj,s,k,i=0,SwapWordLength,strLength,FindWordLength,n;
printf("EnteraFindWord:
\n");
gets(FindWord);
printf("EnteraSwapWord:
\n");
gets(SwapWord);
p1=str;
p2=FindWord;
strLength=strlen(str);/*原英文句子长度*/
FindWordLength=strlen(FindWord);/*查找单词长度*/
SwapWordLength=strlen(SwapWord);/*替换单词长度*/
n=SwapWordLength-FindWordLength;/*查找和替换单词长度的差*/
while(*p1!
='\0')
{
if((*p1==*p2)&&(!
isalpha(*(p1-1))))
while((*p1==*p2)&&(*p2!
='\0'))
{p1++;p2++;i++;}
else{p1++;i++;}
if((*p2=='\0')&&((*p1=='')||(*p1=='\0')))/*所查找单词完全匹配*/
{
if(n<0)
{
j=i-FindWordLength;
for(k=0;kstr[j++]=SwapWord[k];
for(s=i;sstr[j++]=str[s];
while(jstr[j++]='\0';
strLength=strlen(str);
i+=n;
p1+=n;
}
else
{
for(s=strLength+n;s>i;s--)
str[s]=str[strLength--];
j=i-FindWordLength;
for(k=0;kstr[j++]=SwapWord[k];
strLength=strlen(str);
i+=n;
p1+=n;
}
}
p2=FindWord;
}
}
voidmain()
{
charstr[1000];
printf("InputaEnglishsentence:
\n");
gets(str);/*输入一个英文句子*/
printf("OutputEnglishsentence:
\n");
puts(str);
Delete(str);/*删除前导空格,后导空格,中间多余空格*/
printf("DeleteEnglishsentence:
\n");
puts(str);
FindCount(str);/*统计某个单词出现次数*/
Swap(str);/*查找并替换某个单词*/
printf("SwapEnglishsentencd:
\n");
puts(str);
}
程序分析
一、头文件的应用
#include
#include
#include
二、函数的应用
voidDelete(charstr[])
voidFindCount(charstr[])
voidSwap(charstr[])
子函数详细代码,如:
voidDelete(charstr[])
{
inti,j,Length,StartBlank=0,EndBlank=0,MiddleBlank=0;
Length=strlen(str);
for(i=0;iif(str[i]=='')StartBlank++;
elsebreak;
for(j=0;jstr[j]=str[j+StartBlank];
Length-=StartBlank;
for(i=Length-1;i>=0;i--)
if(str[i]=='')EndBlank++;
elsebreak;
Length-=EndBlank;
while(EndBlank>0)
{
str[Length-1+EndBlank]=str[Length+EndBlank];
EndBlank--;
}
i=0;
while(i{
if(str[i]=='')
{
if(str[i+1]=='')
{
for(j=i+1;jstr[j]=str[j+1];
MiddleBlank++;
Length--;
}
elsei++;
}
elsei++;
}
}
三、库函数的调用
输出函数的调用,如:
printf("InputaEnglishsentence:
\n");
输入函数的调用,如:
gets(str);
程序调试截图
输入一个英文句子:
输入句子:
删除空格后的句子:
统计一个单词出现频度:
用一个单词替换原来的一个单词:
参考资料
[1]谭浩强,C程序设计教程,清华大学出版社,2007年
[2]赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,2003年
[3]夏宽理,赵子正编著,《C语言程序设计》,中国铁道出版社,2006年
[4]谭浩强编著,《C程序设计》,清华大学出版社,1991年
[5]GaryJ.Bronson,AFirstBookofANSIC(FourthEdition),PublishingHouseofElectronicsIndustry,2006.
[6]AlKelley,IraPohl,ABookonC:
ProgramminginC(FourthEdition),ChinaMachinePress,2004.
[7]BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage,ChinaMachinePress,2006.
总结
通