关于c语言指针与数组的有关问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 21:21:06
我们老师要我做一下这道题的解题思路,请帮我。(思路简略点好了)
有两串字符串,一串长一串短,分别设为str1和str2,比如str1是短的,str2是长的,求在str1中的第一个字符在str2中出现的位置,要显示出来是第几个位置。
打个比方,若str1为abc,而str2为cdba,则str1中第一个字符a在str2中出现的位置为第4个......(字母都是随意打上去)
要用的是c语言的编程思路(数组和指针的),请帮我,分全给你好了!!!!

#include <stdio.h>

void main()
{
char str1[100],str2[100],*p,ch;

printf("Input 2 str:\n");
scanf("%s",str1);
scanf("%s",str2);
ch=str1[0];
p=str2;
while(*p!='\0')
{
if(ch==*p)
{
printf("%d\n",p-str2+1);
break;
}
p++;
}
printf("not found!");
}

定义两个指针字符串,例如:
char*str1="abc";
char*str2=“cdba";
然后char*p=str2;
while(p!='\0')
{
//比较
//计数
}
进行循环,
用于比较str1中第一个元素是否在str2中出现,并计数,如果遇到了,就break,并记下此时的字符位置。

这些其实很简单,学了《数据结构》这课你就会知道,这只是里面的一小节办内容,模式匹配问题

for (i=1;str1[0]~=ser2[i-1];i++)