永发信息网

C语言题目,求大神解答~!!!

答案:2  悬赏:80  手机版
解决时间 2021-02-16 02:20
从键盘输入字符串 s1=″abcdabcdef″和字符串 s2=″cde″,编写函数,运用指针,若字 符串 s2 是字符串 s1 的子串, 找到字符串 s2 在字符串 s1 中的起始位置 (若 s1 中有多个 s2, 则找到第一个子串的起始位置) ,否则给出提示信息。
最佳答案
这是一个字符串检索问题:

//在S字符串中检索子串T(模式匹配)
int Index(char *S, char *T){
 int i,j,lenS,lenT;
 for(lenS=0;S[lenS];++lenS);
 for(lenT=0;T[lenT];++lenT);
 i=1;j=1;
 while(i<=lenS&&j<=lenT){ //i不超过S范围,j不超过T范围,且S剩余长度不小于T剩余长度
if(S[i-1]==T[j-1]){ ++i;++j; }//匹配,一起后移
  else {i=i-j+2;j=1;if(i>lenS-lenT+1)break;}//不匹配,回溯
 }
 if(j>lenT)  return i-lenT;//成功匹配,或 return i-j+1;
 return 0;//没找到子串,返回0
}这里用的算法是简单的模式匹配。
全部回答
#include  #include  int main() {     int a,b,c;     double x1,x2,num;     scanf("%d %d %d",&a,&b,&c);     num=b*b-4*a*c;     if(num<0)     {         printf("no answer\n");     }     else if(num==0)     {         num=sqrt(num);         x1=(-b+num)/(2*a);         printf("%.4lf\n",x1);     }     else     {         num=sqrt(num);         x1=(-b+num)/(2*a);         x2=(-b-num)/(2*a);         printf("%.4lf %.4lf\n",x1,x2);     }     return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
外墙保温的方法
永川到德阳的汽车车票多少 大概要座多长时间
南江盛源物业管理有限公司我想知道这个在什么
西峡县南阳工商行政管理怎么去啊,谁知道地址
【英语翻译要没有语言错误,最好可以在英文上
卡索地址在什么地方,想过去办事
何为世间五色?
浅水半岛C区地址在什么地方,想过去办事
84版三国演义空成记是那一集
—How is it from Xi’an to Dunhuang?—It
义乌雅太医疗美容门诊部地址在哪,我要去那里
benoi road 在新加坡哪里
三星电话录音文件在哪
我喜欢一个女生a,最近我准备向她表白了,我
上好家快捷宾馆这个地址在什么地方,我要处理
推荐资讯
满堂红食府在什么地方啊,我要过去处理事情
帮我安装一下
jQuery如何获取uedit替换的textarea里面的值
谁知道雁过留声有哪些同义词
温蕊文印部在什么地方啊,我要过去处理事情
尝字的繁体写法
在微型计算机的汉字系统中,一个汉字的内码占
安丘崖头会不会有仙人跳
张镒多的名字得分,命运如何
长沙银行的卡 登陆网上银行的时候忘记密码了
关于925银因为很喜欢银饰,所以家里大大小小的
放肆!我让你动我的手机了吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?