C语言课程设计字符串处理doc文档格式.docx
《C语言课程设计字符串处理doc文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计字符串处理doc文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
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<
stdio.h>
string.h>
ctype.h>
voidDelete(charstr[])
{
inti,j,Length,StartBlank=0,EndBlank=0,MiddleBlank=0;
Length=strlen(str);
for(i=0;
i<
Length;
i++)/*删除前导空格*/
if(str[i]=='
'
)StartBlank++;
elsebreak;
for(j=0;
j<
j++)
str[j]=str[j+StartBlank];
Length-=StartBlank;
for(i=Length-1;
i>
=0;
i--)/*删除后导空格*/
)EndBlank++;
Length-=EndBlank;
while(EndBlank>
0)
{
str[Length-1+EndBlank]=str[Length+EndBlank];
EndBlank--;
}
i=0;
/*删除中间多余空格*/
while(i<
Length)
)
if(str[i+1]=='
for(j=i+1;
str[j]=str[j+1];
MiddleBlank++;
Length--;
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!
))
{p1++;
p2++;
elsep1++;
if((*p2=='
)&
((*p1=='
)||(*p1=='
)))count++;
/*所查找单词完全匹配*/
/*重置查找单词*/
FindCount:
%d\n"
count);
voidSwap(charstr[])
charSwapWord[20],FindWord[20],*p1,*p2;
intj,s,k,i=0,SwapWordLength,strLength,FindWordLength,n;
EnteraFindWord:
EnteraSwapWord:
gets(SwapWord);
strLength=strlen(str);
/*原英文句子长度*/
FindWordLength=strlen(FindWord);
/*查找单词长度*/
SwapWordLength=strlen(SwapWord);
/*替换单词长度*/
n=SwapWordLength-FindWordLength;
/*查找和替换单词长度的差*/
i++;
else{p1++;
)))/*所查找单词完全匹配*/
if(n<
j=i-FindWordLength;
for(k=0;
k<
SwapWordLength;
k++)
str[j++]=SwapWord[k];
for(s=i;
s<
strLength;
s++)
str[j++]=str[s];
while(j<
strLength)
str[j++]='
;
i+=n;
p1+=n;
else
for(s=strLength+n;
s>
i;
s--)
str[s]=str[strLength--];
voidmain()
charstr[1000];
InputaEnglishsentence:
gets(str);
/*输入一个英文句子*/
OutputEnglishsentence:
puts(str);
Delete(str);
/*删除前导空格,后导空格,中间多余空格*/
DeleteEnglishsentence:
FindCount(str);
/*统计某个单词出现次数*/
Swap(str);
/*查找并替换某个单词*/
SwapEnglishsentencd:
程序分析
一、头文件的应用
二、函数的应用
子函数详细代码,如:
i++)
i--)
三、库函数的调用
输出函数的调用,如:
printf("
输入函数的调用,如:
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.
总结
通