字符串处理函数strchr和strstr的实现

时间:2022-01-24 22:17:32
1,strchr函数 函数功能:查找一个字符。在一个字符串中查找一个特定的字符。 函数原型:char *strchr(char const *str,int ch); 函数说明:strchr在字符串str中查找字符ch第一次出现的位置,找到后返回一个指向该位置的指针。如果该字符不存在于字符串中,则返回一个NULL指针。注意:第二个参数是一个整型值,但是,它包含了一个字符串值。 函数实现:
  1 /*实现strchr函数*/
2 #include
3 #include
4 char *mystrchr(char *s,char c)
5 {
6 char*p=s;
7 while(*s && *s!=c)
8 s++;
9 if(*s==c)
10 return s;
11 return NULL;
12 }
13
14 int main()
15 {
16 char buf[20] = "hellowrold!";
17 char c='l';
18 char *p = mystrchr(buf,c);
19 printf("%s\n",p);
20 return 0;
21 }
22


  2,strstr函数 函数功能:在一个字符串中查找一个字串 函数原型:char *strstr(char const *s1,char const *s2); 函数说明:strstr实现在s1中查找整个s2第一次出现的位置,并返回一个指向该位置的指针。如果s2并没有完整的出现在s1的任何地方,函数返回一个NULL指针。如果第二个字符串是一个空字符串,函数返回s1。 函数实现:  
1 /*实现strstr函数*/
2 #include
3 #include
4 char *mystrstr(char *s1,char *s2)
5 {
6 char *pChar;
7 pChar = s2;
8 int len = strlen(s2);
9 for(;strchr(s1,*pChar)!='\0';s1++)
10 {
11 if(strncmp(s1,pChar,len) == 0)
12 {
13 return s1;
14 }
15 }
16 return NULL;
17 }
18
19 int main()
20 {
21 char str1[20]="abcdhello!";
22 char str2[20]="cd";
23 char *p = mystrstr(str1,str2);
24 printf("%s\n",p);
25 return 0;
26 }
27



注:转载出自:http://blog.chinaunix.net/uid-26524139-id-3079990.html