1.strcpy
strcpy为字符串拷贝函数,其返回值为dest地址,主要是为了实现链式表达式,如:
int n = strlen(strcpy(dest, src));
实现代码如下:
char *strcpy(char *dest, char *src)
{
assert(dest != NULL && src != NULL);
char *temp = dest;
while(*dest++ = *src++);
return temp;
}
2.strcmp
strcmp为字符串比较函数
int strcmp(const char *s1, const char *s2);
当返回值为正值时,表示S1 > S2;
当返回值为负值时,表示S1 < S2;
当返回值为0时,表示相等
1.逐个比较字符串的中的每个字符,当相等时,若两者都为结束符'\0',则返回0,否则继续下一个字符的比较;
2.逐个比较字符串的中的每个字符,当不相等时,若S1大,则返回1,否则返回-1;
int strcmp(const char *s1, const char *s2)
{
assert(s1 != NULL && s2 != NULL);
while(*s1 == *s2)
{
if(!*s1)
return 0;
else
{
s1++;
s2++;
}
}
if(*s1 > *s2 )
return 1;
else
return -1;
}
3.strlen
strlen为字符串长度函数,其返回值为字符串长度
int stren(char *s);
实现代码:
int strlen(const char *s)
{
assert(s != NULL);
int len = 0;
while(*s++)
len++;
return len;
}
4.strcat
strcat为字符串连接函数
char *strcat(char *dest,char *src);
将src的字符串连接到dest后面
实现代码:
char *strcat(char *dest, const char *src)
{
assert(dest != NULL && src != NULL);
char *temp = dest;
while(*dest)
dest++;
while(*dest++ = *src++);
return temp;
}
5.strstr
strstr为子字符串查询函数
char *strstr(const char *s1, const char *s2);
查询s2在s1中第一次出现的位置,没有查询到返回NULL
代码实现:
char *strstr(const char *s1, const char *s2)
{
assert(s1 != NULL && s2 != NULL);
while(*s1)
{
int i = 0;
while(*(s2+i) && *(s2+i) == *(s1+i))
++i;
if(!*(s2 + i))
return (char*)s1;
++s1;
}
return NULL;
}