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数据结构-串的输入,对比,复制,匹配的主要内容,如果未能解决你的问题,请参考以下文章