c语言编写一个函数,其功能为搜索由第一个参数指定的字符串,在其中查找由第二个参数指定的字符第一次
2个回答
2013-05-21
展开全部
#include<stdio.h>
// 计算字符串长度
int len(char a[])
{
int temp=0,i;
for(i=0;a[i]!='\0';i++)
temp++;
return temp;
}
// 获取子串在源串中首次出现的位置索引
int index(char a[], char b[])
{
int i,j,temp;
for(i=0;i<len(a)-len(b);i++)
{
temp=i;
j=0;
while(j<=len(b) && a[temp]==b[j])
{
temp++;
j++;
}
if(j==len(b))
return i;
}
return -1;//返回-1则没找到指定的子串,否则找到
}
void main()
{
char a[]="hello";
a[len(a)]=' ';//算法改进,在数组a的末尾新增一个空的元素,这样才能hello中找到hello
printf("%d\n",index(a,"llo"));
}
测试结果:
// 计算字符串长度
int len(char a[])
{
int temp=0,i;
for(i=0;a[i]!='\0';i++)
temp++;
return temp;
}
// 获取子串在源串中首次出现的位置索引
int index(char a[], char b[])
{
int i,j,temp;
for(i=0;i<len(a)-len(b);i++)
{
temp=i;
j=0;
while(j<=len(b) && a[temp]==b[j])
{
temp++;
j++;
}
if(j==len(b))
return i;
}
return -1;//返回-1则没找到指定的子串,否则找到
}
void main()
{
char a[]="hello";
a[len(a)]=' ';//算法改进,在数组a的末尾新增一个空的元素,这样才能hello中找到hello
printf("%d\n",index(a,"llo"));
}
测试结果:
2013-05-21
展开全部
应该对你有帮助的!intstrpos(constchar*haystack,constchar*needle,_Boolignorecase=0){registerunsignedcharc,needc;unsignedcharconst*from,*end;intlen=strlen(haystack);intneedlen=strlen(needle);from=(unsignedchar*)haystack;end=(unsignedchar*)haystack+len;constchar*findreset=needle;for(inti=0;fromc=*from++;needc=*needle;if(ignorecase){if(c>=65&&cc+=32;if(needc>=65&&needcneedc+=32;}if(c==needc){++needle;if(*needle=='\0'){if(len==needlen)return0;elsereturni-needlen+1;}}else{if(*needle=='\0'&&needlen>0)returni-needlen+1;needle=findreset;}}return-1;}/*}}}*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |