C语言中字符串函数怎么入门
发表于:2023-03-28 作者:安全数据网编辑
编辑最后更新 2023年03月28日,这篇文章给大家介绍C语言中字符串函数怎么入门,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。实现字符串库函数功能有些时候我们可能会被限制无法使用库函数,这个时候我们需要编写自己的库
这篇文章给大家介绍C语言中字符串函数怎么入门,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
实现字符串库函数功能
有些时候我们可能会被限制无法使用库函数,这个时候我们需要编写自己的库函数。但了解了字符串库函数的功能之后,想要实现并不困难,今天我们用数组和循环来简单实现几个字符串库函数的功能。
1.strlen函数
strlen函数使用来求字符串长度的,遇到\0就会停止,并返回字符串的长度,接下来根据这个特性来编写一下我们自己的strlen
int my_strlen(char string[]) { int count= 0; while (string[count] != NULL) { count++; } return count;}//也可以将while的判断条件改为string[count]
有些小伙伴应该知道递归的实现,但是这里涉及了指针的内容,我就不教大家实现了
2.strcmp函数
strcmp字符串比较函数,对两个字符串进行比较,相当返回0,前一个字符串大于后一个字符串会返回大于0的数,小于则返回小于0的数,至于具体返回多少,则需要看编译器。
在实现strcmp功能之前,我们需要了解它的机制,strcmp是一个字符一个字符的比较ASCII值的
int my_strcmp(char string1[], char string2[]) { int i = 0; //当两个字符串都没有达到末端时,继续比较 while ((string1[i] == string2[i]) && string1[i] && string2[i]) i++; return string1[i] - string2[i]; //当两个字符串指向的字符不一样或者到达终点时返回差值}
一个简单的while循环就能达到目的
3.strcpy函数
字符串拷贝函数,将后一个字符串拷贝到前一个字符串中,我们需要保证目的地足够大
void my_strcpy(char string1[50], char string2[]) { int i = 0; while (string1[i++] = string2[i++]);}//这里利用了赋值表达式的特性,直接进行赋值,当string[i]为\0时赋值完循环自动停止//当然这个程序并不是完美的,根据strcpy的返回值我们还可以这样修改char* my_strcpy(char string1[50], char string2[]) { int i = 0; while (string1[i++] = string2[i++]); return string1;}//返回目的地的起始地址
4.strcat函数
strcat字符串追加,在一个字符串之后追加一个新的字符串,如果以strcpy的角度理解就是以第一个字符串的\0位置为起始地址进行字符串拷贝,那么接下来就很简单了
char* my_strcat(char string1[50], char string2[]) { int i = -1; while (string1[++i]);//循环停止时i指向\0 int j = 0; while (string1[i++] = string2[j++]); //与strcpy同理 return string1;}
5.strupr函数
strupr字符串大写函数,将所有字符串中的小写字母都变成大写,我们只需要根据ASCII值就可以简单实现
char*my_strupr(char string[]) { int i = 0; while (string[i]) { //当string[i]指向\0时循环停止 if (string[i] >= 'a' && string[i] <= 'z') string[i] -= 32; i++; } return string;}
6.strlwr函数
和strupr对应,这是字符串小写函数,把大写转成小写,只需要对上面的代码简单一改就可以
char*my_strlwr(char string[]) { int i = 0; while (string[i]) { //当string[i]指向\0时循环停止 if (string[i] >= 'A' && string[i] <= 'Z') string[i] += 32; i++; } return string;}
关于C语言中字符串函数怎么入门就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
c语言网络技术和编程语言总结
c语言对应的三级考试网络技术
网站服务器后台如何加防护密码
c语言软件开发步骤
c语言中网络技术知识点
服务器对权限提升的防护措施
怎么在阿里云租服务器
黑苹果能做web服务器吗
c语言和网络技术哪个好考
云服务器2核4G是什么性能
浙江省安全生产网络安全学院
lol外国人看中国服务器
迅雷自定义代理服务器 2022
数据库合作
汉中金口袋网络技术有限公司
网络安全技术课程设计模板
深圳南北互联网科技
第三方网络技术报价方案
web前端数据库交换
软件开发 运营 销售
数据库涉及表
向数据库中插入一条数据怎么插
我们为什么要懂网络安全
至少每年进行一次在职网络安全
溧阳网络安全态势感知装置
移动运维管理和网络安全
数据库限量
软件开发和测试有什么区别
珠海卫星软件开发费用是多少
互联网互金科技
河南怎么考软件开发证书
腾讯拆解互联网科技
至少每年进行一次在职网络安全
常州打造智慧学校软件开发
代理服务器可以监控吗
步行街租房软件开发
盐城网络安全周
特能达手机照片打印服务器
私有云服务器软件
计算机软件开发二本哪里好