字符串中的一些函数实现

函数的实现要考虑全面,注重程序的代码风格,提高程序的健壮性。

strcpy函数的实现:将源字符串的内容拷贝到目的字符串中,后面的'\0'也是要拷贝到目的字符串中的。所以在调用库函数时要注意数组越界的问题。

 

 

 

 

代码
1  char *  strcpy(  char   * strDest,  const   char   * strSrc ) {
2       assert( ( strDest  !=  NULL )  &&  ( strSrc  !=  NULL ) );  // assert是宏不是函数,assert( strDest && strStr )
3        char   * address  =  strDest;  
4        while ( (  * strDest ++   =   * strSrc ++  )  !=   ' \0 '  );
5        return  address;
6  }

 

 

strstr(s1,s2)是一个经常用的函数,他的作用就是在字符串s1中寻找字符串s2如果找到了就返回指针,否则返回NULL。

代码
 1  const   char *  strstr(  const   char   * s1,  const   char   * s2 ) {
 2      assert ( s2  &&  s1 );
 3       const   char   * =  s1,  * =  s2;
 4       while  (  * p ++   ==   * r ++  );
 5       if  (  * ==   ' \0 '  )
 6           return  p;
 7       else  {
 8          r  =  s2;
 9          p  =   ++ s1;
10      }
11       return  NULL;
12  }
13 
14 
15 
18  const   char *  _strstr(  const   char   * str,  const   char   * needle ) {
19      assert( needle  &&  src );
20       const   char   * p1  =  src,  * p2  =  needle;
21       while  ( (  * src  !=   ' \0 '  )  &&  (  * needle  !=   ' \0 '  ) ) {
22           if  (  * src ++   !=   * needle ++  ) {
23              needle  =  p2;
24              src  =   ++ p1;  // 从下一个字符开始搜索needle
25          }
26      }
27       if  (  * needle  ==   ' \0 '  )
28           return  p1;
29 
30       return  NULL;
31  }

 

 

你可能感兴趣的:(字符串)