C语言课程设计字符串处理doc.docx

上传人:b****3 文档编号:2950084 上传时间:2022-11-16 格式:DOCX 页数:13 大小:217.19KB
下载 相关 举报
C语言课程设计字符串处理doc.docx_第1页
第1页 / 共13页
C语言课程设计字符串处理doc.docx_第2页
第2页 / 共13页
C语言课程设计字符串处理doc.docx_第3页
第3页 / 共13页
C语言课程设计字符串处理doc.docx_第4页
第4页 / 共13页
C语言课程设计字符串处理doc.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言课程设计字符串处理doc.docx

《C语言课程设计字符串处理doc.docx》由会员分享,可在线阅读,更多相关《C语言课程设计字符串处理doc.docx(13页珍藏版)》请在冰豆网上搜索。

C语言课程设计字符串处理doc.docx

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;i

if(str[i]=='')StartBlank++;

elsebreak;

for(j=0;j

str[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;j

str[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;k

str[j++]=SwapWord[k];

for(s=i;s

str[j++]=str[s];

while(j

str[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;k

str[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;i

if(str[i]=='')StartBlank++;

elsebreak;

for(j=0;j

str[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;j

str[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.

总结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1