5.14数据结构-串的输入,对比,复制,匹配

Posted huangjiaxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.14数据结构-串的输入,对比,复制,匹配相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#define size 100

typedef struct node{
    char c1[size];
    int length=0;
}sq;

int leng1(sq&l){
    int i=0;
    while(l.c1[i]!=\0){
        l.length++;
        i++;
    }
    return l.length;
}                      //求c1长度 

int leng2(char c[]){
     int b=0,i=0;
    while(c[i]!=\0){
        i++;
        b++;
    } 
    return b;                      //求c2长度 
}

main(){
    sq l; 
    int num1,num2,num3=0,num4,a=0,i,j;
    char c2[size],c3[size],c4[size];
    printf("请输入存入c1的字符串:");
    gets(l.c1) ;
    printf("请输入存入c2的字符串:");
    gets(c2) ;
    printf("请输入要与c1对比的子串:");
    gets(c4);
    num1=leng1(l);
    printf("c1长度为:%d\n",num1);
    num2=leng2(c2);
    printf("c2长度为:%d\n",num2);
    
    if(num1==num2){
        for(i=0;i<num1;i++){
            if(l.c1[i]!=c2[i]){
            a=l.c1[i]>c2[i]?1:-1;
            printf("%d\n",a);
            } 
        }        
    }
    if(a==0||num1!=num2) printf("0\n");   //判断相等 
    
    for(i=0;i<num2;i++){
        l.c1[l.length] = c2[i];
        l.length++;
    }                           //将b添加到a的后面
    
    printf("此时c1中有数据:\n");
    for(i=0;i<num1+num2;i++){
        printf("%c",l.c1[i]);
    }
    printf("\n");
    
    printf("请输入要复制开始的位置(值要小于%d)\n",l.length);//将 c1从I个位置开始的j个数据复制给c3
    scanf("%d",&i);
    printf("请输入复制结束的位置:(值要小于%d)\n",l.length);
    scanf("%d",&j);
    int k=0; 
    if(i<0||i>l.length||j<i||j>l.length) printf("错误!"); 
    else{
        for(i;i<j;i++){        
        c3[k]=l.c1[i-1];
        num3++; k++; 
//       printf("%c",c3[k]); 
        }   
    }
     
    printf("\n");
    printf("c3的数据个数为:%d",num3);
    printf("\n"); 
    
    num4=leng2(c4);                                   
    printf("c4的数据个数为:%d\n",num4);          //查找子串开始的位置 
    for(i=0;i<num1;i++){
        for(k=i,j=0;j<num1;k++,j++){
            if(l.c1[k]!=c4[j])break;
        } 
        if(j==num4) {
            printf("在第%d个位置",i+1); 
        }        
    } 
    
    
}

 

以上是关于5.14数据结构-串的输入,对比,复制,匹配的主要内容,如果未能解决你的问题,请参考以下文章

(原创)数据结构之利用KMP算法解决串的模式匹配问题

数据结构-串的模式匹配

预测方法对比分析

《数据结构(C语言版)》之“串的模式匹配算法”

(5.14)mysql高可用系列——级联复制

数据结构—串KMP模式匹配算法