模拟c++中的strstr函数 c语言中strstr函数

/************************************************************************/

/* 例子:请写出一个函数来模拟c++中的strstr函数:该函数的返回值是主传中字符子串的位

置以后的所有字符,请不要使用任何c程序已有的函数

函数名: strstr

函数原型:externchar *strstr(char *str1, char *str2);

功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。

返回值:返回该位置的指针,如找不到,返回空指针。 */

/************************************************************************/

string LeftSting(const string &Srcstr, const string &Substr)

{

string Results("");

int i = 0;

while(i < Srcstr.size())

{

int j = i;

int k = 0;

while(k < Substr.size())

{

if(Srcstr[j] == Substr[k])

{

j++;

k++;

}

else

break;

}

if(k == Substr.size())//找到了子串

{

for(int t = i; t < Srcstr.size(); t++)

Results += Srcstr[t];

break;

}

else if(k == 0)//此时第一个不是匹配的

{

i++;

}

else//此时已经匹配了k个字符

{

i += k;

}

}

return Results;

}

int main()

{

string sub = "ask"; //解析:删除的是指定字符a s k,不是字符串"ask",所以将str中的每个字符都与sub中的字符比较,

//如果相等,则停止,比较下一个。因为删除的最好办法是把不删除的东西提取出来。

string str = "askdaskaskdaskgasg";

string str2 =LeftSting(str,sub);

cout <<str2<<endl;

return 0;

}

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/89560.html

更多阅读

模拟c++中的strstr函数 c语言中strstr函数

/************************************************************************//* 例子:请写出一个函数来模拟c++中的strstr函数:该函数的返回值是主传中字符子串的位置以后的所有字符,请不要使用任何c程序已有的函数函数名: strstr函

C语言中scanf函数输入回车符的问题 c语言scanf连续输入

在用c语言编写输入语句的时候常用到scanf函数,初学者在刚用scanf函数输入时,经常会遇到各种各样的输入错误,最重要的是一定要记住scanf函数的输入格式,scanf函数里包含了哪些东西,输入的时候就必须有哪些东西,比如:scanf("%c%c%c"),那么输入

C语言中的static函数 c语言中的变量

内部函数和外部函数函数一旦定义后就可被其它函数调用。 但当一个源程序由多个源文件组成时, 在一个源文件中定义的函数能否被其它源文件中的函数调用呢?为此,C语言又把函数分为两类:一、内部函数如果在一个源文件中定义的函数只能被本

声明:《模拟c++中的strstr函数 c语言中strstr函数》为网友从未停步分享!如侵犯到您的合法权益请联系我们删除