目录
strlen、strcpy、strcmp、strcat四个函数都包含在#include <string.h>头文件中
一、strlen函数的实现
strlen函数功能是计算字符串的长度但不包含'\0',返回字符串长度
功能实现如下图:
size_t str_len(char *str)
{
size_t count = 0;//计数
while(*str++)//指针指向往后移动一位
{
count++;
}
return count;
}
二、strcpy函数的实现
strcpy函数的功能是实现字符串的复制,dest为目标字符串,src为源字符串
功能实现如下图:
char *str_cpy(char *dest,const char *src)
{
char *temp = dest;//后面需要返回首地址
while(*temp = *src)
{
temp++;
src++;
}
return dest;
}
三、strcmp函数的实现
strcmp函数的功能是比较两个字符串的大小,相等返回0,前者大于后者返回正值,前者小于后者返回负值
功能实现如下图:
int stc_cmp(const char *str1,const char *str2)
{
while(*str1 == *str2 && *str1)//记得要判断为真
{
str1++;
str2++;
}
return *str1-*str2;
}
四、strcat函数的实现
strcat函数的功能:存在两个字符串,将其中一个字符串加到另一个字符串的末尾,'\0'也会随之过去
功能实现如下图:
char *str_cat(char *dest,const char *src)
{
char *temp = dest;
while(*temp)
temp++;
while(*temp = *src)
{
temp++;
src++;
}
return dest;
}
五、代码示例展示
四个函数的示例展示,如下图(仅供参考)
#include <stdio.h>
#include <assert.h>
int str_len(const char *src)
{
assert(NULL != src);//用来判断传入函数的字符串是否为空
int cnt = 0;
while(*src++)
cnt++;
return cnt;
}
char *str_cpy(char *dest,const char *src)
{
assert(NULL != dest && NULL != src);
char *temp = dest;
while(*temp++ = *src++);
return dest;
}
char *str_cat(char *dest,const char *src)
{
assert(NULL != dest && NULL != src);
char *temp = dest;
while(*temp) temp++;
while(*temp++ = *src++);
return dest;
}
int str_cmp(const char *arr1,const char *arr2)
{
assert(NULL != arr1 && NULL != arr2);
while(*arr1 == *arr2 && *arr1)
{
arr1++;
arr2++;
}
return *arr1 - *arr2;
}
int main(int argc,const char* argv[])
{
char arr[256] = "wwwww";
char arr2[256] = "wwwww";
printf("strlen:%d\n",str_len(arr));
// printf("strcpy:%s\n",str_cpy(arr,arr2));
if(str_cmp(arr,arr2) == 0)
{
printf("arr == arr2\n");
}
printf("strcat:%s\n",str_cat(arr,arr2));
}