图片来源moocC语言程序设计进阶-第一周测试

截图.png
//字符串比较
#include<stdio.h>
#include<string.h>
int main(){
char ch1[10000];//字符串1
char ch2[10000];//字符串2
int j=0;//数组匹配程度标志
//读入字符串
gets(ch1);
gets(ch2);
//定义两个指针分别指向两个数组首地址
char *p1 = ch1;
char *p2 = ch2;
int count=0;//记录p2所知数组下标,它随p2增减而增减
while(*p2!='\0'){//如果 p2未移到字符串尾继续执行
for(int i = 0; i<strlen(ch1);i++){//每一个比较的长度都是数组ch1的长度
//如果p2和p1所指字符相同则指针都移向下一个字符
if(*p2-*p1==0){
p1++;
p2++;
count++;
} else{
//两指针所指字符不同,则p2移至下一个字符;
//p1回到ch1的首地址
p2++;
count++;
p1=ch1;
break;
}
/*
p1指针到达串尾,则将p1指向ch1首地址
输出p2所在位置的下标减去p1ch1长度的值
p2这一轮未与p1比较的位置的后一位
*/
if(i==strlen(ch1)-1){
p1=ch1;
printf("%d ",count-strlen(ch1));
p2-=i;
count-=i;
j++;
}
}
}
if(j==0){//两个数组不匹配输出-1
count=-1;
printf("%d",count);
}
return 0;
}