实现字符串查找

来源:互联网 发布:小学网络安全教育题目 编辑:程序博客网 时间:2024/06/02 04:30
/* *   * 实现功能】实现字串查找程序 * 题目】1,判断一个字符串(dst)是否是另一个字符串(src)的字串 *        2,输出字串在母串中第一次出现的起始位置 *        3,匹配的时候不区分大小写; *        4,不能使用库函数(使用库函数按0分计算) *        【要求】1,要求实现函数:unsigned int str_str(char *src,char *dst) *        返回:如果dst是src的子串 则返回起始位置        如果不是 则返回0 *        输入:src指向母串的指针;src指向子串的指针 *        示例; *        src->akrsd5859 dst->rsd  返回3 *        src->Rstsawerst36ds dst->rst  返回8 *        src->dfsge          dst->dfsesa 返回0 * */#include <stdio.h>#define MAX_NUMBER 10unsigned int CharEqual(char c_src, char c_dst){if(c_src == c_dst)return 1;else if(c_src >= 65 && c_src <= 90 && (c_src + 32) == c_dst)return 1;else if(c_src >= 97 && c_src <= 122 && (c_src -32) == c_dst)return 1;elsereturn 0;}unsigned int str_str(char *src, char *dst){int postion = 1;int i = 0, j = 0;while(src[i] != '\0' && dst[j] != '\0'){if(CharEqual(src[i], dst[j])){if(j == 0){postion = i + 1;}i++;j++;}else if(CharEqual(src[i], dst[0])){postion = i +1;j = 1;i++;}else{j = 0;postion = 0;i++;}}if(dst[j] == '\0' && postion > 0)return postion;elsereturn 0;}int main(){char dst[MAX_NUMBER], src[MAX_NUMBER];unsigned int postion = 1;printf("please entry souceString: ");gets(src);printf("please entry findString: ");gets(dst);if(src != NULL && dst != NULL){postion = str_str(src, dst);if(postion == 0){printf("\"%s\" 不是\"%s\"的子串\n", dst, src);}else{printf("\"%s\" 是\"%s\"的子串,开始位置:%d\n", dst, src, postion);}}return 0;}

0 0
原创粉丝点击