C语言中字符串函数怎么入门
发表于:2022-08-11 作者:安全数据网编辑
编辑最后更新 2022年08月11日,这篇文章给大家介绍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是什么性能
冬奥会网络安全安保志愿者
python开发网络安全
河南弘扬网络技术有限公司在哪
卫士通网络安全产品
led电子显示屏网络安全
抖音服务器叫什么
中国的网络安全么
主流数据库架构
物理知识网络技术
部队安全隐患排查数据库
mysqls创建数据库
linux服务端软件开发
专家系统及软件开发
江阴重型软件开发市场价格
常州信息化软件开发
数据库语句不为空查询
网络安全手抄报a4纸复杂
熊片数据库
短链接服务器
为什么要进行网络安全管控
网络安全潜在的威胁
通信网络安全防护测评流程
sql数据库的求和语句
我以网络安全的手抄报
海康威视网络安全检测报告
张家港提供网络技术服务价格
信息网络技术的内容
分布式数据库是什么时候流行
青岛app软件开发服务费
湖北天脉网络技术有限公司