C语言编程:输入母字符串、子字符串,输出子字符串中首字母在在母字符串中的位置,求高手解题……
3个回答
展开全部
#include <stdio.h>
int substrpos(char *s,char *t) { // 返回字符串s中包含子串t的首字母位置
char *p = s,*q,*pt;
int pos;
while(*p) {
q = t;
pos = p - s;
pt = p;
while(*q++ == *pt++);
if(*--q == '\0') return pos;
++p;
}
return -1;
}
int main () {
char s[] = "asjhfeasjdeasjdiaske",t[] = "sk";
int pos = substrpos(s,t);
if(pos >= 0) printf("%s 在 %s 中首字符位置是 : %d\n",t,s,pos);
else printf("%s 中不包含 %s。\n",s,t);
return 0;
}
int substrpos(char *s,char *t) { // 返回字符串s中包含子串t的首字母位置
char *p = s,*q,*pt;
int pos;
while(*p) {
q = t;
pos = p - s;
pt = p;
while(*q++ == *pt++);
if(*--q == '\0') return pos;
++p;
}
return -1;
}
int main () {
char s[] = "asjhfeasjdeasjdiaske",t[] = "sk";
int pos = substrpos(s,t);
if(pos >= 0) printf("%s 在 %s 中首字符位置是 : %d\n",t,s,pos);
else printf("%s 中不包含 %s。\n",s,t);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
void main()
{
char a[81],b[81];
int i,j;
int lena,lenb;
printf("输入母字符串:");
gets(a);
printf("输入子字符串:");
gets(b);
for(i=0;a[i];i++);
for(j=0;b[j];j++);
lena=i;lenb=j;
for(i=0;i<=lena-lenb;i++)
{
for(j=0;a[j+i] && b[j] && a[j+i]==b[j];j++);
if(b[j]=='\0')
{
printf("%d\n",i);
}
}
}
void main()
{
char a[81],b[81];
int i,j;
int lena,lenb;
printf("输入母字符串:");
gets(a);
printf("输入子字符串:");
gets(b);
for(i=0;a[i];i++);
for(j=0;b[j];j++);
lena=i;lenb=j;
for(i=0;i<=lena-lenb;i++)
{
for(j=0;a[j+i] && b[j] && a[j+i]==b[j];j++);
if(b[j]=='\0')
{
printf("%d\n",i);
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询