1 Star 0 Fork 0

李勇震/c语言每日练习

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
test 12.23(strlen、strcpy、strcat函数的使用以及实现) 1.88 KB
一键复制 编辑 原始数据 按行查看 历史
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
//strlen 函数 使用以及三种实现strlen方法
//方法一 计数器
//int my_strlen(const char* str)
//{
// assert(str);
// int count = 0;
// while (*str++)
// {
// count++;
// }
// return count;
//}
//方法二 递归方法
//int my_strlen( char* str)
//{
// if (*str == '\0')
// {
// return 0;
// }
// else
// {
// return 1 + my_strlen(str+1);
// }
//
//}
//方法三 指针减指针
//int my_strlen(char*str)
//{
// char* p1 = str;
// char* p2 = str;
// while (*p2)
// {
// p2++;
// }
// return p2 - p1;
//}
//int main()
//{
// char arr[] = "abc";
// //int ret = strlen(arr);
// //模拟实现strlen
// int ret = my_strlen(arr);
// printf("%d", ret);
// return 0;
//}
//注意 strlen 函数返回类型为 size_t 无符号整型
//strcpy函数使用以及实现 注意事项
//strcpy 实现 char * strcpy ( char * destination, const char * source );
//char* my_strcpy(char* dest, const char* src) //const 防止被变化
//{
// assert(dest && src); //断言防止空指针
// //保存一下 dest 位置
// char* ret = dest;
//
// while (*dest++ = *src++)
// {
// ;
// }
// return ret;
//}
//int main()
//{
// char arr1[20] = "##########";
// char arr2[] = "hello";
// //strcpy(arr1, arr2);
//
// printf("%s", my_strcpy(arr1, arr2));
// return 0;
//}
// '/0' 也会被拷贝过去
//strcat 函数的使用以及实现
char* my_strcat(char* str1, const char* str2)
{
char* ret = str1;
while (*str1 != '\0')
{
str1++;
}
while (*str1++ = *str2++)
{
;
}
return ret;
}
//char * strcat ( char * destination, const char * source )
int main()
{
char arr[20] = "hello ";
char arr2[] = "world";
//strcat(arr, arr2);
printf("%s",my_strcat(arr,arr2));
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/liyongzhen2004/2022.10.24.git
git@gitee.com:liyongzhen2004/2022.10.24.git
liyongzhen2004
2022.10.24
c语言每日练习
master

搜索帮助