字符串Str函数小结

news/2024/10/7 10:23:24

数据结构

字符串Str函数总结

·我们学习过很多关于求解字符串相关问题的函数,但是都是每遇到一次算认识了,一定程度上很少进行总结,最近又重新接触到了这类“Str函数”,发现自己还是有点掌握不牢固,以下仅是个人学习总结,有错误之处可指出。

image

如上图所示,在man手册中有许多关于str的函数,但是面试题中主要要我们掌握以上五种(strstr好像没那么常见),有四个打点的函数,其实用法和前面四种函数没有太大区别。

1.strcpy函数(拷贝字符串函数)

strcpy函数的含义:拷贝字符串(包括'0) strncpy函数的含义:拷贝前n个字节的字符串 如下图所示

image

/****************************************************************************** file name: 2024-05-06_StrTypes.c* author   : tongyaqi1110@163.com* date     : 2024-05-06* function : 总结关于字符串类型的Str函数证明及其用法  strcpy strlen strcat...* note     : None* CopyRight (c)   2024  tongyaqi1110@163.com   Right Reseverd*****************************************************************************/
#include <stdio.h>
//验证过程,不调用任何str函数
char *strcpy(char *dest, const char *src)
{while (*src != '\0'){*dest = *src++;//将原保留的字符串的数组元素用指针一个拷贝给新的数组dest++;}*dest = '\0';return dest;
}
//测试  
int main()
{char A[] = "Hello world!";char B[20];// 使用自定义的strcpy函数复制字符串strcpy(B, A);// 打印复制后的字符串printf("destination=%s\n", B);return 0;
}

2.strlen函数(求字符串长度函数)

strlen和strnlen的区别同1.中解释。

image


#include <stdio.h>
size_t strlen(const char *s)
{size_t count = 0;while (*s != '\0'){count++;//只要字符串存在,遍历一个字符记一个数s++;//计完数依次挪动指向字符串的指针}return count;
}
//为了看起来简洁 后面的函数就不把测试放上来了
int main()
{char s[] = "Hello World!";size_t length = strlen(s);printf("Length of the string: %s\n", length);return 0;
}

3.strcat函数(将两个字符串连接的函数)

strcat和strncat的区别同1.中解释。

image

char*strcat(char*dest,const char*src){
char* p= dest;
while (*p != '\0') {
p++;//先遍历目标字符串
}
while (*src != '\0') {
*p =*src;//遍历完第一个字符串后,p指针指向末尾,现在再把p指针指向第二个字符串的第一个字符(你瞧,顺其自然的就连接了)
p++;
src++;
}
*p ='0';
return dest;
}

4.strcmp函数(比较两个字符串的)

image

int strcmp(const char*s1,const char*s2)
{while (*s1++==*s2++){if (*s1=='0'&&*s2=='0'){return 0;//一直比较到两个字符串遍历完 如果相等则返回0}return 1;//如果不相等则返回1}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28294.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

《自动机理论、语言和计算导论》阅读笔记:p428-p525

《自动机理论、语言和计算导论》学习第 14 天,p428-p525总结,总计 98 页。 一、技术总结 1.Kruskals algorithm(克鲁斯克尔算法) 2.NP-Complete Problems p434, We say L is NP-complete if the following statements are true about L: (1)L is in NP。 (2)For every langu…

xxe-基于Pikachu的学习

XXE漏洞 XML外部实体注入(XXE)的原理和应用_xml注入原理-CSDN博客 XXE(XML外部实体注入)漏洞分析——pikachu靶场复现_pikachu xxe-CSDN博客 原理 XML外部实体注入漏洞(XML External Entity Injection)简称XXE,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载…

vue3.4中KeepAlive的一个bug

KeepAlive可以缓存组件,在不使用include时没有任何问题,可以正常缓存。 但是一旦使用了include,如果动态组件中没有导入ref函数,缓存功能就消失了 比如 editcom.vue <template><input > </template> <script setup> import { ref } from vue </…

已知前中后序遍历的其中两种推断出最后一种序遍历

已知二叉树后序遍历序列是 dabec,中序遍历序列是debac,它的前序遍历序列是? 方法1: 首先可以确定c为根 d为最左子树 由中序debac 假设b为第2排的子树 那么后序的后两位应该是bc yu本题题目后序不符合 由中序debac 假设e为第2排的字数 那么后序的后两位应该是ec 符合本题题目…

[每日AI0506]巴菲特谈 AI,李飞飞创业,苹果或将推出 AI 功能,ChatGPT 版搜索引擎

AI 资讯苹果或将推出 AI 功能,随 iPhone 发布 2024 年巴菲特股东大会,巴菲特将 AI 类比为核技术 巴菲特股东大会 5 万字实录 消息称 OpenAI 将于 5 月 9 日发布 ChatGPT 版搜索引擎 路透社消息,斯坦福大学 AI 领军人物李飞飞打造“空间智能”创业公司 报道地址 爆款生成式 A…

程序设计题

设计一程序实现功能,处理字符串A,处理规则是:只要B字里面有的字母,不分大小写,一律从A 字符串中删掉。/*************************************************** file name:Pro_StuInfo.c* author :momolyl@126.com* date :2024/05/06* function :设计一程序实…

排查Java反射调用的InvocationTargetExcetion问题

在Java中通过反射调用方法时,常见的一个异常是:java.lang.reflect.InvocationTargetException,将异常信息打印到日志文件中时通常会有如下一句信息:java.lang.reflect.InvocationTargetException: null,由于在异常信息中存在"null",一开始就会非常敏感,会误以…