模拟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;
}
更多阅读
转载 套接字编程中的WSAStartup函数说明 原始套接字编程
原文地址:套接字编程中的WSAStartup函数说明作者:半路出家int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData);(1)wVersionRequested参数用于指定准备加载的Winsock库的版本。高位字节指定所需要的Winsock库的副版本,而低
模拟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语言中的随机函数分析与生成m个不重复随机数算法比较 c语言不重复随机数
c语言中的随机函数分析与生成m个不重复随机数算法比较一说起随机函数,恐怕又有人说这是老生长谈了……一般很多人都形成了自己的固定格式,因为随机数用处比较大,用的时候比较多,拿过来就用了。但是新手不这么干,他们总是抱有疑惑,我就是