(用c++语言编程)
编写一个函数,测试一个指定字符是否存在一个指定字符串中.若是.则返回该字符在串中的第一次出现的位置(用c++语言)...
编写一个函数,测试一个指定字符是否存在一个指定字符串中.若是.则返回该字符在串中的第一次出现的位置(用c++语言)
展开
展开全部
#include <iostream>
#include <string>
using namespace std;
int search(const char* target,const char* source)
{
if(strlen(target)>strlen(target))return 0;
if(!strcmp(target,source))return 1;//strcmp在相等时返回0 注意\0是结束符,不是/0
const char *s=source;
const char *t=target;
int location=1;
for(;*s!='/0';s++,location++,t=target)
{
if(*s==*t)
{
s++;
t++;
location++;
while(*s!='/0'&&*t!='\0')
{
if (*s!=*t)
{
break;
}
s++;
t++;
location++;
}
if(*t=='\0')return location-strlen(target);
}
if(*s=='\0'||*t=='\0')return 0;
}
return 0;
}
/*——————————测试————————————————————*/
int main()
{
char* a="ab";
char* b="123an123";
//cout<<search("ab","ab");
cout<<search(a,b);
return 0;
}
没有的话返回0,有的话,返回位置,比如search("ab","abc")就返回1,也就是说位置是从1开始记得,这个自己可以改
#include <string>
using namespace std;
int search(const char* target,const char* source)
{
if(strlen(target)>strlen(target))return 0;
if(!strcmp(target,source))return 1;//strcmp在相等时返回0 注意\0是结束符,不是/0
const char *s=source;
const char *t=target;
int location=1;
for(;*s!='/0';s++,location++,t=target)
{
if(*s==*t)
{
s++;
t++;
location++;
while(*s!='/0'&&*t!='\0')
{
if (*s!=*t)
{
break;
}
s++;
t++;
location++;
}
if(*t=='\0')return location-strlen(target);
}
if(*s=='\0'||*t=='\0')return 0;
}
return 0;
}
/*——————————测试————————————————————*/
int main()
{
char* a="ab";
char* b="123an123";
//cout<<search("ab","ab");
cout<<search(a,b);
return 0;
}
没有的话返回0,有的话,返回位置,比如search("ab","abc")就返回1,也就是说位置是从1开始记得,这个自己可以改
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询