strlen是 C 标准库提供的字符串处理函数,其功能是计算字符串中从起始地址到第一个空字符(’\0’)的字节数
头文件<string.h>
注意:这里的 “长度” 不包含作为字符串结束标志的 ‘\0’。
size_t strlen ( const char * str );返回值为无符号整数类型 size_t
以下是错误示范:
#include<stdio.h>
#include<string.h>
int main()
{
if (strlen("abc") - strlen("abcdef") >= 0)
printf(">=");
else
printf("<");
printf("\n\n");
return 0;
}运行结果:

那么 为什么会现这种情况呢? 因为 strlen返回值为无符号整数类型 size_t 而两无符号整数类型相减结果也是无符号整数类型 理论上是远大于0的 所以 要小心使用strlen的返回值
模拟函数,自己写一个strlen函数 其中有很多方法 这里我用到了函数递归 使用该方法不引入新变量
#include<stdio.h>
int my_strlen(const char* ch)
{
if (*ch == '\0')
return 0;
else
return my_strlen(ch + 1) + 1;
}
int main()
{
char ch[] = "abcdef";
int sz = my_strlen(ch);
printf("%d\n\n", sz);
return 0;
}运行结果:

将一个字符串复制到另一个字符串中 头文件<string.h>
char *strcpy(char *dest, const char *src)dest :指向用于存储复制内容的目标数组。 src : 要复制的字符串。 把 src 所指向的字符串复制到 dest
另外注意: 1.源字符串必须以 ‘ \0 ’ 结尾。 2.strcpy函数会将 ‘ \0 ’ 拷贝到目标空间。 3.目标空间必须可修改而且要足够大。
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[100];
char arr2[] = "abcdrf";
strcpy(arr1, arr2);
//arr1是目标数组
//arr2是被拷贝数组
printf("%s\n\n", arr1);
return 0;
}运行结果:

演示:
#include<stdio.h>
#include<assert.h>
void my_strcpy(char* dist, const char* sour)
{
assert(dist && sour);
//用assert断言
//确保程序符合运行条件
while (*dist++ = *sour++)
{
;
//此处为空语句
}
}
int main()
{
char arr1[100];
char arr2[] = "abcdrf";
my_strcpy(arr1, arr2);
//arr1是目标数组
//arr2是被拷贝数组
printf("%s\n\n", arr1);
return 0;
}运行结果:

本期资料来自于
本文有不足之处,希望各位兄弟们能给出宝贵的意见。谢谢大家!!!
新人,希望各位兄弟们能动动小手,三连走一走!!!支持一下(三连必回)
下一期我们讲解strcat、strcmp字符串函数!!!