广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中string库函数的作用是什么和怎么使用
  • 895
分享到

C++中string库函数的作用是什么和怎么使用

2023-06-30 09:06:36 895人浏览 安东尼
摘要

本文小编为大家详细介绍“c++中string库函数的作用是什么和怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++中string库函数的作用是什么和怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧

本文小编为大家详细介绍“c++中string库函数的作用是什么和怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++中string库函数的作用是什么和怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1.strlen函数

是什么?

strlen函数是string头文件中最常见的一个函数,用于求字符串的长度。 strlen英文全称string length,既字符串长度,可以顾名思义地来记忆。

具体用法:

C++中string库函数的作用是什么和怎么使用

✅这是从c++ reference上截取的介绍,strlen函数的用法就是向其传入一个字符串数组的首元素地址,其返回值是字符的个数。

⭕演示代码如下:

#include<string.h>int main(){char str[] = "abc";int len1 = strlen(str);int len2 = strlen("abc");printf("%d\n%d", len1,len2);return 0;}

!!这里应该注意的是,"abc"表示的也是一个字符串数组,其传给strlen函数的是首元素地址。

运行结果:

C++中string库函数的作用是什么和怎么使用

下面我们试着运行一下这个代码:

#include<string.h>int main(){char str1[] = "abc";int len1 = strlen(str1);char str2[] = { 'a','b','c'};int len2 = strlen(str2);printf("%d\n%d", len1,len2);return 0;}

运行结果:

C++中string库函数的作用是什么和怎么使用


❓为什么这里的str2的长度会是13呢?乍一看不是abc三个元素,长度为3吗?

这里需要补充一个知识点。在C语言中,系统会在字符串数组最后加上一个&rsquo;\0&rsquo;作为结束标志。而strlen函数的工作原理就是计算传入数组 (首元素地址指针指向的数组)在&rsquo;\0&rsquo;之前的元素个数,既该字符串长度。
而该代码块中所定义的str数组并不是一个字符串数组,因此&rsquo;\0&rsquo;的位置并不在最后一个元素后面,而是一个随机的位置,strlen函数会一直计算长度直到遇见&rsquo;\0&rsquo;才停止工作并返回结果。
因此,strlen(str2)会返回一个随机值,该值不代表该数组的长度。
C++中string库函数的作用是什么和怎么使用

通过调试验证了str1字符串数组末端有一个&rsquo;\0&rsquo;而str2没有。

2.strcpy函数

是什么?

strcpy,英文全称copies strcpy,也是一个string头文件中较为常见的函数,用于将一个字符串的内容复制到另一个数组中。

具体用法

C++中string库函数的作用是什么和怎么使用

(再次引用c++ reference中的描述,发现这种英文的工具网站的描述比中文的清晰地多)

✅strcpy的使用方法是向其传入两个指针,前者是目标数组首元素地址指针,后者是原字符串数组地址指针,将原字符串数组(包括末尾结束标志&rsquo;\0&rsquo;)拷贝到目标数组中。若目标数组中本身具有元素,则根据原字符串数组的长度一一覆盖。(❗注意:为了防止数组溢出,目标数组长度应大于原字符串数组。)

⭕演示代码如下:

#include<string.h>int main(){char str1[] = "abcdefg";char str2[] = "123";strcpy(str1, str2);//str2==>str1printf("%s", str1);//打印拷贝处理后的str1return 0;}

运行结果:

C++中string库函数的作用是什么和怎么使用

可见,str2的内容完美地拷贝到str1中了。

C++中string库函数的作用是什么和怎么使用

通过调试可以发现,str2的内容覆盖了str1前四个元素,而后面的元素依然存在。但是因为str2的&rsquo;\0&rsquo;也跟着拷贝过去了,所以在打印的时候,由于printf格式控制符是%s(既字符串类型),在遇到第一个&rsquo;\0&rsquo;时则认为它是字符串结束标志,结束打印。因此,打印出来的结果是字符串"123"。

3.strcmp函数

是什么?

strcmp函数,英文全称compares string(字符串比较), 既用于比较两个字符串,那么这里是比较字符串的什么呢?这里的比较是这样的:先比较两个字符串的第一个字符的ASCII码值(这里视为第一对字符),(下面的比较均是ASCII码值的比较)如果第一个字符串的第一个字符大于第二个字符串的第一个字符,则返回1;反之,则返回-1;若两个字符相等,则进行下一对字符的比较,直到出现有一对字符不同则返回相应的值(1或-1)。若两个字符串所有的字符都相同,则返回数字0。

具体用法:

C++中string库函数的作用是什么和怎么使用

传入两个指针,代表两个字符串数组的首元素地址。

⭕演示代码如下:

#include<string.h>int main(){char str1[20];char str2[20];scanf("%s%s", str1, str2);int ret=strcmp(str1, str2);switch (ret){case 0:printf("str1=str2");break;case 1:printf("str1>str2");break;case -1:printf("str1<str2");break;}return 0;}

运行结果:

C++中string库函数的作用是什么和怎么使用

C++中string库函数的作用是什么和怎么使用

C++中string库函数的作用是什么和怎么使用

可见,这里的比较和我们所描述的相一致。
⭕这里应该注意,'\0&rsquo;的ASCII码是0,它与其他字符都小。

4.strcat函数

是什么?

(先介绍strcat)

strcat,英文全称concatenates string(连接字符串),这里很容易理解,strcat函数就是用于连接两个字符串的,那么它是如何连接的呢?接下来我将介绍一下它的具体用法。

具体用法

C++中string库函数的作用是什么和怎么使用

✅如图所示,使用strcat函数需向其传入两个指针,前者是目标数组首元素地址指针,后者是原字符串数组地址指针(与strcpy类似,只不过这里是将原字符串接到目标字符串后面)。传参成功后,strcat会将原字符串的第一个字符覆盖到目标字符串的&rsquo;\0&rsquo;位置,后面再接着原字符串剩下的全部字符,直到遇见&rsquo;\0&rsquo;后结束,保证了拼接后的字符串只有一个结束标志&rsquo;\0&rsquo;。

⭕演示代码如下:

#include<string.h>int main(){char str1[5]="ab";strcat(str1, "cd");printf("%s\n", str1);char str2[5] = "ab";char str3[3] = "cd";strcat(str2, str3);printf("%s\n", str2);return 0;}//原字符串可以用字符串数组也可以直接用字符串,结果相同

运行结果:

C++中string库函数的作用是什么和怎么使用

如果我们想让拼接后的字符串更长,能不能修改一下原字符串实现呢?让我们来试试看????

int main(){char str1[5]="ab";strcat(str1, "cde");printf("%s\n", str1);}

运行结果:

C++中string库函数的作用是什么和怎么使用

运行出错,引发了异常,这是为什么呢?

这里是因为发生了数组溢出,由于"cde"字符串加上&rsquo;\0&rsquo;有四个字符,而str1我们规定了长度为5,当"cde"拼接在str1后覆盖了它的&rsquo;\0&rsquo;之后,拼接字符串一共有六个字符,超过了目标字符串str1的长度,无法容纳拼接后的字符串,所以发生了错误。
⭕由此我们可得,在使用strcat函数时,要规定给目标字符串一个合适的长度,防止数组溢出。

5.两个不太常用的string头文件函数

strstr函数

strstr,英文全称Locate substring,既定位子字符串。strstr的返回值比较特殊,它是通过传入一个母字符串和一个子字符串,然后在母字符串中定位子字符串的位置,返回值为指向母字符串中第一次出现的子字符串中指定的整个字符串的指针。若子字符串不属于母字符串的一部分,则返回空指针NULL。

⭕演示代码如下:

#include<string.h>int main(){char str1[20]="I love you";char* p1 = strstr(str1, "you");char* p2 = strstr(str1, "me");printf("%s\n%s\n", p1,p2);}

运行结果:

C++中string库函数的作用是什么和怎么使用

memset函数

memset函数,英文全称Fill block of memory,既填充内存块。memset的作用是将指针指向的内存块(这里可以认为是字符串)的第一个字节数设置为指定的值。

⭕演示代码如下:

#include<string.h>int main(){char str[20]="I love you";memset(str, '-', 2);printf("%s\n", str);return 0;}

运行结果:

C++中string库函数的作用是什么和怎么使用

显而易见,其结果无非就是将两个&rsquo;-'填充到str字符串的前两个位置。

读到这里,这篇“C++中string库函数的作用是什么和怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网其他教程频道。

--结束END--

本文标题: C++中string库函数的作用是什么和怎么使用

本文链接: https://www.lsjlt.com/news/327986.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++中string库函数的作用是什么和怎么使用
    本文小编为大家详细介绍“C++中string库函数的作用是什么和怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++中string库函数的作用是什么和怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-30
  • C++中的String函数怎么使用
    这篇文章主要介绍“C++中的String函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中的String函数怎么使用”文章能帮助大家解决问题。一. string的构造函数的形式:st...
    99+
    2023-07-05
  • C++中的string库函数常见函数的作用和使用方法
    目录前言: string库函数是什么正文1.strlen函数是什么具体用法:2.strcpy函数是什么?具体用法3.strcmp函数是什么?具体用法:4.strcat函数是什么?具体...
    99+
    2022-11-13
  • C++中replace()函数的作用是什么
    今天就跟大家聊聊有关C++中replace()函数的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C++编程语言中的string应用方式多样化,每一种应用方式都能帮助我们提...
    99+
    2023-06-17
  • c++中strcpy函数的作用是什么
    strcpy函数是C++标准库中的一个字符串拷贝函数,其作用是将一个字符串拷贝到另一个字符串中。具体来说,strcpy函数的原型如下...
    99+
    2023-09-15
    c++ strcpy
  • C# 中CreateEmployeeDefinition()函数的作用是什么
    这篇文章给大家介绍C# 中CreateEmployeeDefinition()函数的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。背景提示通常包含一个描述性信息,伴随一个停止以让用户理解所给的信息并输入数据。...
    99+
    2023-06-17
  • C#中ConvertSum函数的作用是什么
    这篇文章将为大家详细讲解有关C#中ConvertSum函数的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码的主调C#函数ConvertSum,它的参数是string类型的数字字...
    99+
    2023-06-18
  • C#中构造函数和析构函数的作用是什么
    本篇文章给大家分享的是有关C#中构造函数和析构函数的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#构造函数(constructor)包括实例C#构造函数和静态C#...
    99+
    2023-06-17
  • C++ deviceiocontrol函数的作用是什么
    DeviceIoControl函数用于与设备驱动程序进行通信。它允许应用程序向设备驱动程序发送控制代码,以执行特定的设备操作,如读取...
    99+
    2023-09-16
    C++
  • c++虚函数的作用是什么
    C++中的虚函数是一种特殊的成员函数,用于实现多态性。虚函数允许在派生类中重新定义基类中定义的同名函数,从而实现动态绑定。动态绑定允...
    99+
    2023-10-26
    c++
  • C++友元函数的作用是什么
    C++友元函数的作用是允许一个函数访问一个类的私有成员和保护成员。通常情况下,只有类的成员函数可以访问类的私有成员和保护成员,但是有...
    99+
    2023-10-11
    C++
  • c语言中strlen函数的作用是什么
    strlen函数用于计算一个字符串的长度,即字符串中字符的个数(不包括字符串末尾的空字符'0')。它是C语言中的标准库函数,需要包含...
    99+
    2023-10-18
    c语言
  • vb中string函数的用法是什么
    在VB中,字符串(String)函数可以用于处理和操作字符串数据。以下是一些常见的String函数用法:1. Len函数:返回字符串...
    99+
    2023-09-26
    vb
  • C语言函数调用的作用是什么
    C语言函数调用的作用是将程序的执行过程分割成更小的可重用模块,提高代码的可读性和可维护性。函数调用可以将一组操作封装到一个函数中,并...
    99+
    2023-09-13
    C语言
  • c语言free函数的作用是什么
    在C语言中,`free()`函数用于释放之前通过`malloc()`、`calloc()`或`realloc()`分配的动态内存。它...
    99+
    2023-09-15
    c语言
  • c语言malloc函数的作用是什么
    malloc函数的作用是在内存中动态分配一块连续的空间,并返回该空间的首地址。它可以用来申请一定大小的内存空间,以便在程序中使用。这...
    99+
    2023-10-20
    c语言
  • c语言fun函数的作用是什么
    c语言fun函数的作用有fun函数通常被主函数所调用。用fun来定义一个函数或方法,这样在引用时可以用fun表示。fun函数是自定义函数,只是在调用时用这个单词表示该函数。...
    99+
    2022-10-04
  • c语言assert函数的作用是什么
    assert函数是C语言标准库中的一种调试工具,其作用是在程序运行时检查某个条件是否为真,如果条件为假,则终止程序运行并输出错误信息...
    99+
    2023-05-25
    c语言assert函数 c语言
  • c语言ioctl函数的作用是什么
    ioctl函数的作用是通过设备文件进行设备的控制和信息的获取。它能够对设备进行一些特殊的操作,如设置设备参数、发送控制命令、获取设备...
    99+
    2023-08-08
    c语言 ioctl
  • c语言wait函数的作用是什么
    C语言中的wait函数用于使父进程等待子进程的结束。当父进程调用wait函数时,如果子进程已经结束,则立即返回子进程的终止状态;如果...
    99+
    2023-09-06
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作