首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

strcat函数及其模拟实现(C语言)

前言 C语言中的库函数有很多,有关于处理字符串的函数有很多。在本文中,我将为大家介绍处理字符串较为常用的一个函数——strcat函数 希望读者们能够好好看,大家一起进步!...2. strcat函数 strcat函数的功能是将两个字符串的内容拼接在一起 2.1 strcat函数的原型 char* strcat(char* destination, const char* source...下面我再写一个代码展示: 如果在你不知道strcat函数规则的前提之下,你是否会直接认为这个打印的结果不也和上述那个例子一样,打印的都是"I love learning c!“。...但是代码是不会说谎的,它打印的是"I love c!”。也就是说,strcat函数在遇到目标字符串中的第一个’\0’时,直接从这个字符的位置开始追加源字符串的内容!...可能此时有些读者心里有这么一个困惑,arr1后面还有内容啊,为什么它就没打印出来? 原因很简单:%s占位符是指打印‘字符串中第一个\0’之前出现的内容。

19410

【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现

前言 记上节,我们学了字符串strlen的使用和三种模拟实现方法,本小节,阿森继续和你一起学习4个字符串函数:strcpy,strcat,strcmp,strstr的使用和他的模拟实现方法,学习这些库函数...库函数strcat strcat函数用于将源字符串src追加到目标字符串dest的结尾。...例如: char* p = strstr("hello world","world"); // p指向"world"子字符串在"hello world"中的位置 这里用一个图来解释strstr函数的工作原理...若老铁们有点蒙蒙的,可以结合下图来理解: 总结 这次阿森和你一起学习4个C语言中常用的基本字符操作函数,当然这只是一部分,还有很多,但阿森会慢慢和你一起学习。...感谢你的收看,如果文章有错误,可以指出,我不胜感激,让我们一起学习交流,如果文章可以给你一个小小帮助,可以给博主点一个小小的赞

55910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    初识C语言·字符(串)函数

    const,因为我们只是计算长度,不希望字符串的内容被修改,所以加个const修饰一下,结合前面的递归知识,这个是很好理解的。...5 strcat的使用和模拟实现 strcat这个函数是用来连接字符串的,根据cplusplus 我们得知,引用的头文件是string,返回值是目的字符串的地址,返回类型是char*,参数有两个,目的字符串的地址和来源字符串的地址...,也就是没有错误,所以我们现在想main函数为什么要返回0,为什么C语言认为返回0就是程序正常,就是因为这个咯。...每个错误都是有自己对应的错误码的,但是程序报错的时候不可能就给你一个1或者2什么的,strerror通过错误码,返回错误码对应的那串字符串,我们现在就打印1-10对应的错误码试试。...注意:这个函数是会修改字符串的,所以传进去的不能是常量字符串,也不能用const修饰 调试的结果,不出所料的所有.都变成了\0,那如果分隔符变多了呢?比如多个分隔符在一起了。

    7810

    【C进阶】——详解10个C语言中常见的字符串操作函数及其模拟实现

    这篇文章给大家介绍一些C语言中处理字符串的 库函数 以及它们的使用和注意事项,一起来学习吧!!!...,但这里还是带大家一起来复习一下,并强调一些注意事项: 字符串以 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。...19和31,为什么会是这个结果,是巧合吗?我们再运行一次: 又一个不同的结果,为啥呢? 因为如果我们不加’\0’,去求一个没有结束标志的字符串,它的结果将会是一个随机值,为什么呢?...——strcat 一起来认识一下: 其实就是在一个字符串的后面追加上另外一个字符串。...3.2 strcat的模拟实现 现在我们已经知道了strcat的参数和工作原理,那我们就来模拟实现一下它: 怎么搞呢?

    87910

    C:字符串函数(续)-学习笔记

    既然strcpy会将源头内容中的\0拷贝过来,那么如果源头不包含\0的话,会有什么结果呢?...char ch1[] = { 'a','b','c'}; char ch2[20] = "*************";//为了方便观察是否拷贝了\0 strcpy(ch2, ch1); 这里为什么会出现这样的错误呢...2、strcat与strncat 2.1 strcat的使用与模拟 2.1.1 strcat的使用 strcat的作用是实现字符串的链接 那么什么是字符串的链接呢?...const char * source ); cplusplus中对strcat的解释: 这里有两个问题,第一个问题是strcat函数的追加是不是从我们字符串遇到的第一个\0开始追加?...2.1.2 strcat的模拟实现 学会了strcat函数的使用,接下来我们尝试模拟一下; //dest指目标空间也就是arr;src指源头,也就是所要追加的字符串首字符的地址 char* my_strcat

    9310

    校长讲堂第九讲

    我们暂且忘记这些能够在一些实现中工作但可能不能在另一些实现中工作的东西,直到以后讨论可以执行问题为止。...譬如在一些编译器中,它的输出为 0 0 0 0 0 1 2 3 4。 为什么?因为 c 的声名是 char 而不是 int。当你令 scanf()去读取一个整数时,它需要一个指向一个整数的指针。...下面这种明显的方法并不会工作: char *r; strcpy(r, s); strcat(r, t); 这是因为 r 没有被初始化为指向任何地方。...让我们再试试,为 r 分配一些内存: char r[100]; strcpy(r, s); strcat(r, t); 这只有在 s 和 t 所指向的字符串不很大的时候才能够工作。...这可以精确地描述 C 中通常将指针误以为是其指向的数据的错误。正将常会在字符串中发生。

    56431

    Java开发知识之Java字符串类

    并提供相应的函数进行处理 strcmp strcat strcpy....等等 Java中也有字符串处理.不过Java是面相对象的.也就是说字符串是一个对象. 我们需要的字符串都是以类来进行管理的....此时Str1 与 Str2引用了相同的字符串常量. ? 三丶字符串操作之字符串的连接   字符串的声明以及定义我们已经回了.但是如何让两个字符串合在一起使用那....跟str.length()返回值一样 indexOf 没找到也返回-1 3.获取指定位置的字符   charAt() 方法.   ...两者的返回值: boolean 真或者假   5.字符串比较.比较字符串是否相等.   5.1 字符串比较 错误的写法: String str1 = "Hello"' String str2 = "World...不区分大小写 equalsIgnoreCase(String str)方法.   5.2字典顺序比较 java中有按照字典顺序.

    43120

    【C语言加油站】详细解读字符函数与字符串函数

    (不包含'\0'); strlen的返回值是size_t类型的值; 这里可能就会有朋友有疑问了,size_t是一个什么类型,下面我们一起来探讨一下; 3.2.1 size_t类型 这里是通过C++图书馆的网站上找到的解释...在很多时候,我们都会遇到需要我们在某个字符串中查找子串的位置,这种定位子串的操作我们将其称为字符串的匹配模式。...为了更加高效的完成提取工作,C语言在头文件中给我们提供了一个用来拆分字符串的函数strtok。...下面我们就来一起了解一下这个库函数: 从函数的介绍中我们可以看到这个函数是用来找到字符串中的下一个标记的,至于这个标记是什么,我们还不清楚; 在函数的原型中可以看到这个函数有两个参数一个是char*类型的参数...,则需要借助输出函数来进行输出; perror的作用就是自动获取错误信息并将错误信息打印在控制台上; 可见,相比于 strerror和error,perror不仅能够完成它们俩的工作,还能额外完成打印函数的工作

    15410

    C语言 | 每日基础(44)

    古代的剑客们与 对手相逢时,无 论对手多么强大, 明知不敌,也要亮出自己的剑! 读者:为什么 strcat(string, ’!’); 不行?...阿一:字符和字符串的区别显而易见, 而 strcat() 用于连接字符串。C 中的字符用它们的字符集值对应的小整数表示。字符 串用字符数组表示; 通常你操作的是字符数组的第一个字符的指针。...二者永远不 能混用。要为一个字符串增加 !, 需要使用strcat(string, "!"); 读者:我在检查一个字符串是否跟某个值匹配。为什么这样不行?...阿一:C 中的字符串用字符的数组表示, 而 C 语言从来不会把数组作为一个整体操 作 (赋值, 比较等)。...; 为什么我不能写 char a[14]; a = "Hello, world!"; 阿一:字符串是数组, 而你不能直接用数组赋值。

    3293229

    基础知识 | 每日一练(82)

    基础知识练习 士人有百折不回之真心,才有万变不穷之妙用。...为什么不提倡使用它? 小林:在调用 alloca() 的函数返回的时候, 它分配的内存会自动释放。也就是说, 用 alloca 分配的内存在某种程度上局部于函数的 “堆栈帧” 或上下文中。...由于这些原因, alloca() 不合标准, 不宜使用在必须广泛移植的程序中, 不管它 可能多么有用。既然 C99 支持变长数组(VLA), 它可以用来更好的完成 alloca() 以 前的任务。...学生:为什么 strcat(string, ’!’); 不行? 小林:字符和字符串的区别显而易见, 而 strcat() 用于连接字符串。 C 中的字符用它们的字符集值对应的小整数表示。...字符 串用字符数组表示; 通常你操作的是字符数组的第一个字符的指针。二者永远不 能混用。要为一个字符串增加 !, 需要使用strcat(string, "!");

    3463029

    字符函数和字符串函数

    #include strlen函数 strlen我们之前就学过,这里就不详细讲,对于其模拟有三个方式,第三个方式是不创建临时变量的方式,用了函数递归去实现。...其中需要注意的一点是source中拷贝是指向的内容遇到\0再终止,包括\0一起移动到目标地。 还需注意左边的目标参数类型为char*,右边源头参数类型为const char* 。...strcat函数 没什么必须要讲的,其函数格式跟strcpy格式一摸一样 strcat跟strcpy有点类似,只不过该函数是从目标函数的第一个\0时开始作用链接。而strcpy是最开始就作用。...这就是其strncat更多细节 对于自己给自己追加,我们就可以用strncat实现,长度为字符串长度。不要用strcat实现自己给自己追加。...strstr strstr会返回 str2在str1的第一次地址 ,前提要str1中有str2(不包含\0)。

    6510

    初学者对C语言的爱恨情仇之神秘的字符串

    字符串字面量如何存储的 C语言字符数组与字符指针 C语言中的字符串库 1、strlen函数 2、strcat 和 strncat函数 3、strcmp 和 strncmp函数 4、strcpy 和 strncpy...像我们学的“每一个”英文字符(a,b,c…)都是属于字符,并且汉字、数字、标点符号都是属于一个字符; 像“我是谁,我在哪”这7个字符合起来就是一个字符串。那么串的话其实就是多个字符合在一起的结果。...无论是Java中的jar包,还是C语言中的库。其实都是一些封装好的工具,以便给他人使用。 在实际开发中,我们掌握这些库的基本用法是必须的,可以大大的提高我们的工作效率。...这个strcat函数是用来拼接字符串的,分别传入dest和src字符串,最终把src拼接到dest中进行返回。...例如: 我们定义一个数组,一开始不赋值,然后等我们业务逻辑到达的时候,再赋值: char str3[10]; 假设到了该赋值的地方: str3 = "zhenghui"; 这个地方会执行错误的。

    71920

    C语言字符(串)函数

    * str ); 使用注意 字符串是以'\0'为结束标志,strlen在统计字符串长度时,统计的时'\0'之前的字符个数(不包含'\0') 函数参数所指向的字符串必须以'\0'结束 函数的返回值类型是...使用注意: 源字符串必须以'\0'结束 strcpy在拷贝过程中,会将源字符串中'\0'一起拷贝到目标空间 目标空间必须足够大,确保能够存放源字符串 目标内空间须可以修改 strcpy函数会返回目标空间的起始地址...函数类型: char* strcat(char* dest,const char* src) strcat函数是字符串连接,可以将src所指向的字符串内容连接到dest所指向的字符串后面。...errno是0,表示没有错误,当我们在使用标准库的函数的时候发生了某种错误,就会将对应的错误码,存放在errno中,而一个错误码的数字是整数很难理解是什么意思,所以每一个错误码都是有对应的错误信息的。...strerror函数就可以将错误对应的错误信息字符串的地址返回。

    8110

    【C字符串函数】——对C语言中有关字符串库函数的实现及模拟

    关于C语言的知识放在专栏:C 小菜坤日常上传gitee代码:https://gitee.com/qi-dunyan ❤❤❤ 个人简介:双一流非科班的一名小白,期待与各位大佬一起努力!...strtok函数(在字符串中定义用作分隔符的集合) 1.6 strerror函数 (错误码转换错误信息) 字符串函数 前言 我们已经了解了C语言中很多数据类型,比如int(整数类型)、char(字符类型...‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。...xxxx,因为遇到\0字符串停止 return 0; } 1.3 strcat的实现及模拟(字符串追加) strcat是字符串追加函数,顾名思义就是在一个字符串后面再增加另外一个字符串。.../hello world return 0; } strncat的使用及模拟实现 strncat与strcat很类似,只不过strcat是追加整个字符串,而strncat是追加指定的字符串,比如说可以给

    1.1K40

    拿捏住C字符串,这个烦人程度不亚于指针的小东西

    strcpy:复制字符串 strcat:拼接字符串 字符串处理能力能够反映出一个程序员的技术功底 曾几何时,看到过这么一句话:字符串处理能力能够反映出一个程序员的技术功底。...size_t是针对系统定制的一种数据类型,一般是整型,因为C/C++标准只定义最低的位数,而不是必需的固定位数。而且在内存里,对数的高位对齐存储还是低位对齐存储各系统都不一样。...而且用memset给指针变量如p所指向的内存单元进行初始化时,n 千万别写成 sizeof§,这是新手经常会犯的错误。...---- strcat:拼接字符串 char* strcat(char* s1,const char* s2); //第一个参数的地址必须足够长,不然越界了,就是会有未知的风险了 //注意,这些函数的参数类型...、和返回值类型,别搞错了 ---- 后期写完C++会补上关于C++字符串的操作,所以各位如果觉得缺了点啥,可以发在评论区,我们一起看看

    29510

    字符函数,字符串函数

    (const char*str) strlen函数有几点需要注意 • 字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前⾯出现的字符个数(不包 含 '\0' )...str2, size_t num ); • ⽐较str1和str2的前num个字符,如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀ 样,就提前结束,⼤的字符所在的字符串⼤于另外⼀...使用: (函数返回字符串str2在字符串str1中第⼀次出现的位置) (字符 串的⽐较匹配不包含 \0 字符,以 \0 作为结束标志)。...strerror ( int errnum ); strerror函数可以把参数部分错误码对应的错误信息的字符串地址返回来。...strerror函数就可以将错误对应的错误信息字符串的地址返回。

    3000
    领券