1.strlen
strlen是计算字符串长度的函数,即不包括\0在内的所有字符个数。
注意:strlen返回值的类型是无符号整型。
模拟实现:
size_t my_strlen(const char* str)
{
size_t count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
2.strcpy
strcpy是复制字符串的函数,包括\0在内。
char * strcpy ( char * destination, const char * source );
模拟实现:
void my_strcpy(char* dest, char* src)
{
while (*src != '\0')
{
*dest = *src;
dest++;
src++;
}
}
3.strcmp
strcmp是比较两个字符串的函数,若第一个字符串大于第二个,则返回一个大于0的数,小于则返回一个小于0的数,相等则返回0。
模拟实现:
int my_strcmp(const char* str1, const char* str2)
{
while (*str1 == *str2)
{
if (*str1 == '\0') //两个字符串完全相等
return 0;
str1++;
str2++;
}
if (*str1 > *str2)
return 1;
else
return -1;
}
4.strcat
strcat是将第二个字符串追加到第一个字符串后面的函数,从目标字符串的\0处开始追加。
char * strcat ( char * destination, const char * source );
模拟实现:
char* my_strcat(char* dest, const char* src)
{
char* ret = dest; //记录起始位置,后边dest变化找不到位置
//找目标空间的\0
while (*dest != '\0')
{
dest++;
}
//拷贝
while (*src != '\0')
{
*dest = *src;
dest++;
src++;
}
//拷贝部分可简化
/*while (*dest++ = *src++)
;*/
//当*dest = '\0'时,\0为0,即为假,跳出循环
return ret;
}