1 Star 0 Fork 0

LC.yulin/C.语言

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
test.6_22.c 2.57 KB
一键复制 编辑 原始数据 按行查看 历史
LC.yulin 提交于 2022-06-22 21:18 . 字符串库函数和模拟实现
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<assert.h>
#include<string.h>
//1.计数器
//int my_strlen(const char* str)
//{
// assert(str != NULL);
// int count = 0;
// while (*str != '\0')
// {
// count++;
// str++;
// }
// return count;
//}
//2.递归:
//int my_strlen(const char* str)
//{
// assert(str != NULL);
// if (*str == '\0')
// {
// return 0;
// }
// else
// {
// return 1 + my_strlen(str + 1);
// }
//}
////3.指针减指针的方式:
//int my_strlen(const char* str)
//{
// assert(str != NULL);
// char* start = str;
// char* end = start;
// while (*end != '\0')
// {
// end++;
// }
// return end - start;
//}
//int main()
//{
// char arr[] = "abc";
// int len = my_strlen(arr);
// printf("%d\n", len);
// return 0;
//}
//int main()
//{
// if (strlen("abc") - strlen("abcdef") > 0)
// {
// printf(">\n");
// }
// else
// {
// printf("<=\n");
// }
//
// return 0;
//}
//int main()
//{
// char arr1[20] = { 0 };
// char arr2[] = "abcdef";
// strcpy(arr1, arr2);
// printf("%s\n", arr1);
// return 0;
//}
//源字符串必须以'\0'为结束标志
//int main()
//{
// char arr1[20] = { 0 };
// char arr2[] = { 'a','b','c' };
// strcpy(arr1, arr2);
// printf("%s\n", arr1);
// return 0;
//}
//源字符串在拷贝的时候将'\0'也一起拷贝过去
//int main()
//{
// char arr1[20] = "%%%%%%%";
// char arr2[] = "abc";
// strcpy(arr1, arr2);
// printf("%s\n", arr1);
// return 0;
//}
//目标字符串必须可以被修改:
//int main()
//{
// char* p = "abcdef*****";
// char arr2[] = "abcdef";
// strcpy(*p, arr2);
// printf("%s\n", p);
// return 0;
//}
//目标空间必须足够大
//int main()
//{
// char arr1[5] = { 0 };
// char arr2[] = "abcdef";
// strcpy(arr1, arr2);
// printf("%s\n", arr1);
// return 0;
//}
//字符串拷贝模拟实现:
//char* my_strcpy(char* dest, const char* src)
//{
// assert(dest != NULL);
// assert(src != NULL);
// char* ret = dest;//使函数具有外部链接属性
// while (*dest++ = *src++)
// {
// ;
// }
// return ret;
//}
//int main()
//{
// char arr1[20] = { 0 };
// char arr2[] = "abcdef";
// my_strcpy(arr1, arr2);
// printf("%s\n", arr1);
// return 0;
//}
//int main()
//{
// char arr1[20] = "hello \0*****";
// //将源字符串拷贝到目标字符串第一个'\0'的后面;
// char arr2[10] = "world";
// strcat(arr1, arr2);
// printf("%s\n", arr1);
// return 0;
//}
//模拟实现字符串拷贝
char* my_strcat(char* dest, const char* src)
{
assert(dest && src);
char* ret = dest;
//1.找到目标字符串的'\0'
while (*dest)
{
dest++;
}
//2.将源字符串组追加到目的地
while (*dest++ = *src++)
{
;
}
return ret;
}
int main()
{
char arr1[20] = "hello ";
char arr2[10] = "world";
my_strcat(arr1, arr2);
printf("%s\n", arr1);
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/lc-yulin/c-language.git
git@gitee.com:lc-yulin/c-language.git
lc-yulin
c-language
C.语言
master

搜索帮助