1
、
Strcat
函数原型如下
View Code
1
char
*
strcat(
char
*
strDest,
const
char
strScr)
//
将源字符串加const,表明其为输入参数
2 {
3 char * address = strDest; // 该语句若放在assert之后,编译出错
4
5 assert((strDest != NULL) && (strScr != NULL)); // 对源地址和目的地址加非0断言
6
7 while ( * strDest) // 是while(*strDest!=’\0’)的简化形式
8 {
9 // 若使用while(*strDest++),则会出错,因为++是不受循环
10 strDest ++ ; // 约束的。所以要在循环体内++;因为要是*strDest最后指
11 } // 向该字符串的结束标志’\0’。
12 while ( * strDest ++ = * strScr ++ ) // 是while((*strDest++ = *strScr++)!=’\0’)的简化形式
13 {
14 NULL; // 该循环条件内可以用++,
15 } // 此处可以加语句*strDest=’\0’;
16 return address; // 为了实现链式操作,将目的地址返回
17
18 }
2 {
3 char * address = strDest; // 该语句若放在assert之后,编译出错
4
5 assert((strDest != NULL) && (strScr != NULL)); // 对源地址和目的地址加非0断言
6
7 while ( * strDest) // 是while(*strDest!=’\0’)的简化形式
8 {
9 // 若使用while(*strDest++),则会出错,因为++是不受循环
10 strDest ++ ; // 约束的。所以要在循环体内++;因为要是*strDest最后指
11 } // 向该字符串的结束标志’\0’。
12 while ( * strDest ++ = * strScr ++ ) // 是while((*strDest++ = *strScr++)!=’\0’)的简化形式
13 {
14 NULL; // 该循环条件内可以用++,
15 } // 此处可以加语句*strDest=’\0’;
16 return address; // 为了实现链式操作,将目的地址返回
17
18 }
2、Strcpy函数原型如下:
View Code
1
char
*
strcpy(
char
*
strDest,
const
char
*
strScr)
2 {
3 char * address = strDest;
4 assert((strDest != NULL) && (strScr != NULL));
5 while ( * strScr) // 是while(*strScr != ’\0’)的简化形式;
6
7 {
8 * strDest ++ = * strScr ++ ;
9 }
10 * strDest = ' \0 ' ; // 当strScr字符串长度小于原strDest字符串长度
11
12 return address; // 时,如果没有改语句,就会出错了。
13
14 }
2 {
3 char * address = strDest;
4 assert((strDest != NULL) && (strScr != NULL));
5 while ( * strScr) // 是while(*strScr != ’\0’)的简化形式;
6
7 {
8 * strDest ++ = * strScr ++ ;
9 }
10 * strDest = ' \0 ' ; // 当strScr字符串长度小于原strDest字符串长度
11
12 return address; // 时,如果没有改语句,就会出错了。
13
14 }
3.Strcmp函数原型如下:
View Code
1
int
strcmp (
const
char
*
str1,
const
char
*
str2)
2 {
3 int len = 0 ;
4 assert((str1 != ' \0 ' ) && (str2 != ' \0 ' ));
5 while ( * str1 && * str2 && ( * str1 == * str2))
6 {
7 str1 ++ ;
8 str2 ++ ;
9 }
10 return * str1 -* str2;
11 }
2 {
3 int len = 0 ;
4 assert((str1 != ' \0 ' ) && (str2 != ' \0 ' ));
5 while ( * str1 && * str2 && ( * str1 == * str2))
6 {
7 str1 ++ ;
8 str2 ++ ;
9 }
10 return * str1 -* str2;
11 }
4 strlen函数原型如下:
View Code
1
int
strlen(
const
char
*
str)
2 {
3 int len = 0 ;
4 assert(str != NULL);
5 while ( * str ++ )
6 {
7 len ++ ;
8 }
9 return len;
10 }
2 {
3 int len = 0 ;
4 assert(str != NULL);
5 while ( * str ++ )
6 {
7 len ++ ;
8 }
9 return len;
10 }
5.memcpy函数原型如下
View Code
1
void
*
memcpy(
void
*
dest,
const
void
*
src, size_t count)
2 {
3 char * tmp = dest;
4 const char * s = src;
5 while (count -- )
6 * tmp ++ = * s ++ ;
7 return dest;
8 }
2 {
3 char * tmp = dest;
4 const char * s = src;
5 while (count -- )
6 * tmp ++ = * s ++ ;
7 return dest;
8 }