我是靠谱客的博主 开放乐曲,最近开发中收集的这篇文章主要介绍字符串函数讲解1(strlen、strcpy和strncpy),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.strlen

2.strcpy、strncpy


1. strlen 功能:求字符串长度-------> size_t strlen(const char* str)

注:函数的返回值是size_t是无符号类型(unsigned int);strlen找到''就会停下来(不包括含'')。

  strlen的模拟实现

//模拟实现strlen
//1.计数器的方式
//2.不能创建临时变量计数器 (递归)
//3.指针-指针方式
int my_strlen(const char* str)
{
assert(str);
int count = 0;
while (*str)
{
count++;
str++;
}
return count;
}
int my_strlen(const char* str)
{
if (*str == '')
{
return 0;
}
else
{
return 1 + my_strlen(str + 1);
}
}
int my_strlen1(char* str)
{
char* p = str;
while (*p)
{
p++;
}
return p - str;
}
int main()
{
char arr[10] = "abcdef";
int sz = 0;
sz = my_strlen1(arr);
printf("%d", sz);
return 0;
}

2. strcpy 功能:拷贝所有字符-------->char* strcpy(char* destination, const char* source)

注:char* destination为目的地址,char* source为源头字符串地址。在拷贝过去的时候,会将源字符串中的''也一起拷贝到目标空间。源字符串必须以''尾; 目标空间必须足够大;目标空间必须可变。

strcmp的模拟实现

//模拟实现strcpy(字符串拷贝)
char* my_strcpy(char* dest, const char* str)
{
assert(dest&&str);
char* ret = dest;
while (*dest++ = *str++) //拷贝src指向的字符串到dest指向的空间,包含''。
{
;
}
return ret;
}
int main()
{
char arr1[] = "abcdef";
char arr2[] = "world";
my_strcpy(arr1, arr2);
printf("%s", arr1);
return 0;
}

strncpy 功能:拷贝num个字符---->char* strncpy(char* destination, const char* source,size_t num);

注:与strcpy不一样的地方是:strcpy是将整个字符串全部拷贝过去,而strncpy是可以指定多少个字符进行拷贝。如果源字符串长度小于num,则拷贝完源字符串之后,在目标的后面追加0,直到num个。

最后

以上就是开放乐曲为你收集整理的字符串函数讲解1(strlen、strcpy和strncpy)的全部内容,希望文章能够帮你解决字符串函数讲解1(strlen、strcpy和strncpy)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部