自己写几个字符串函数
2024-01-10 07:33:28
? ? ? ? 字符串一直是一个很神奇的东西,顾名思义,字符串是由字符所构成的串,而一串字符也就构成了字符串;而我们又知道,字符在内存中是以ASCII码的形式进行存储的,所以说将一切联系起来,我们就可以来研究一下字符串了。这篇文章主要研究几个字符串中简单的函数,并且用自己的方式,模仿一下这几个函数的实现。
strlen函数
? ? ? ? 最经典的strlen函数,可以计算字符串的长度,用法如下:
#include<stdio.h>
int main()
{
char* a = "abcdef";
printf("%d", (int)strlen(a));
}
? ? ? ? 最简单的用法,就可以算出a这个字符串的长度为6,注意,strlen的返回值是(size_t),所以说我们将其强制类型转化一下成int。
自己写一个strlen?
? ? ? ? 让我们自己来写一个strlen函数:
size_t my_strlen(char* a)
{
int count = 0;
while (*a != '\0')
{
count++;
a++;
}
return count;
}
int main()
{
char *a = "abcdefg";
//printf("%d", (int)strlen(a));
printf("%d", (int)my_strlen(a));
return 0;
}
? ? ? ? 这就是我们模仿的strlen函数写的mystrlen函数,定义一个变量为count,只要a不是\0,count就++,然后返回count,这就是模拟的strlen实现。
strcpy函数
? ? ? ? strcpy函数,顾名思义,就是字符串的拷贝(copy),怎么使用呢?
#include<stdio.h>
//strcpy函数
int main()
{
char a[20] = {0};
strcpy(a, "abcdefg");
printf("%s", a);
}
? ? ? ? 我们就用strcpy函数来将abcdefg拷贝到了a里面去,然后打印出来,a就是abcdefg了。让我们来模拟实现一下:
自己写一个strcpy
????????
#include<stdio.h>
//my_strcpy
char* my_strcpy(char* a, char* b)
{
char* ret = a;
while (*a++ = *b++)
;
return ret;
}
int main()
{
char a[20];
char* b = "abcdefg";
my_strcpy(a, b);
printf("%s", a);
return 0;
}
? ? ? ? 这个函数是如何实现的呢?,其实很简单,创建一个指针来存放a的地址,当b不等于\0的时候,就将*a的值赋成*b的值,然后分别++,这样当b为\0的时候,就退出循环,然后返回temp的地址(也就是原来a的地址)。
?
文章来源:https://blog.csdn.net/Aishangyuwen/article/details/135490430
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!