c语言数据结构(2)

2018-12-22 23:59

问题4.1:代码实现

#include #define MAXLINE 1000int index(char s[ ], char t[ ]);intindex(chars[],chart[]){inti,j,k;int main( )使用scanf的缺点是不能输入带空格的字符串。可换成for(i=0;s[i]!=?\\0?;i++){{gets(s);由于打开一个文件操作可能失败for(j=i,k=0;t[k]!=?\\0?&&s[j]==t[k];j++,k++)char filename[64], s[81], line[MAXLINE];,因此,好的风格应判断fopen来实现查找带空格的字符串。;FILE *fp;函数的返回值,进行错误处理。scanf(\scanf(\if((fp = fopen(filename, \printf(\return 1;}return(-1);}if(index(line, s) >= 0)printf(\return 0;注意:由于上述循环当没有相应匹配字符时也退出。因此,要依据t中所有字符都匹配(即t[k]==?\\0?)来判断查找是否成功。if(t[k]==?\\0?)return(i);}while(fgets(line, 81, fp) != NULL)}问题4.1:测试

当要查找的文件为“test.txt”,要查找的串为”the”,且文件test.txt中内容为:Nowisthetimeforallgoodmentocometotheaidoftheirparty则屏幕输出:this is thetimemen to come to theaidof their party问题4.1:测试(续)

?

其它考虑点:

??

要查找的串在一行的头、尾要查找的串在文件中不存在

问题4.1:思考1

?

问题4.1实现了大小写相关的字符串查找,即字符串“the”和“The”是不同字符串。请实现大小写无关的字符串查找。

intindex(chars[],chart[])

?

算法分析:

{

inti,j,k;

在比较字符时,可将比较字符均转换为小写或大for(i=0;s[i]!=?\\0?;i++){写既可实现大小写无关查找。for(j=i,k=0;t[k]!=?\\0?&&tolower(s[j])==tolower(t[k]);设函数char tolower(char c)用于将字符c转换;为相应小写字符,则上面index可改为:if(t[k]==?\\0?)

return(i);

}

return(-1);}

j++,k++)

问题4.1:函数tolower实现

?

方法一:

char tolower(char c){

if( c >=?A? && c<=?Z?)return ?a? –?A? + c;return c;}

?

方法二:对于象tolower这样功能简单的函数,可以用宏函数来实现。

#define tolower(c)

(c>=?A?&&c<=?Z? ? ?a?-?A?+c:c)


c语言数据结构(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电子商务b2c实验报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: