c语言,哪位大佬帮帮我。使用字符数组保存一个字符串,不使用库函数,完成对字符数组的查询操作。 看图

2024-11-24 21:38:35
推荐回答(2个)
回答1:

#include 
char s[999],t[999];
int strseek(char* a,char* b)
{
int i,j,k=0,m,n;
for(m=0;a[m];m++);
for(n=0;b[n];n++);
if(m for(i=0;i+n<=m;i++)
{
for(j=0;j {
if(a[i+j]!=b[j])break;
}
if(j==n)k++;
}
return k;
}
int strout(char* a,char* b,int times)
{
int i,j,k=0,m,n;
for(m=0;a[m];m++);
for(n=0;b[n];n++);
if(m for(i=0;i+n<=m;i++)
{
for(j=0;j {
if(a[i+j]!=b[j])break;
}
if(j==n)k++;
if(k==times)return i;
}
return -1;
}
int main()
{
scanf("%s%s",s,t);
printf("%d",strseek(s,t));
printf("%d",strout(s,t,2));
}

 strseek(a,b) 返回在a串中b串出现的次数

strout(a,b,t) 返回a串中第t次出现b串时的a串对应下标

回答2:

首先我鼓励你大量的使用库函数,其次比较字符串中的字符是否相等可以不需要库函数,比如下面的代码就可以
int find(char* str,char v){
int ret=0;
while(1){
if(*(ret+str)==v) return ret;
else if(!(*(ret+str))) return -1;
ret++;
}
return 0;//永远都不会执行这句
}