【C语言】字符操作 计算子字符串首次出现在母字符串的位置
/*编写完整的程序。采用顺序存储方式存储串,计算一个子串在字符串中首次出现的位置,输出这个下标。
输入说明:字符串ms 字符串zs
输出说明:zs在ms中首次出现下标
输入样例:baadefaadcb aadc
输出样例:6 */
#include<stdio.h>
#include<string.h> //字符操作头文件
int main()
{
char m[128],z[128]; //定义字符数组
int M_size,Z_size,i,j,s=0,sum[128];
printf("请输入字符串m和字符串z:\n");
scanf("%s %s",m,z);
M_size=strlen(m); //计算数组大小
Z_size=strlen(z);
for(i=0;i<Z_size;i++) //判断z数组中与m数组中字符是否相等,若相等把m数组相应下标放到一个数组中
{
for(j=0;j<M_size;j++)
{
if(m[j]==z[i])
{
sum[i]=j;
s++;
break;
}
}
}
if((s==Z_size)&&(sum[1]==sum[0]+1)) //判断 Z数组中与m数组中字符相等的个数并判断相等字符是否连续
{
printf("字符串z首次出现在字符串m的下标:%d",sum[0]);
}
else
printf("输入的字符串m和字符串z无关联");
return 0;
}