本文小编为大家详细介绍“C++中string库函数的作用是什么和怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++中string库函数的作用是什么和怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。strlen函数是string头文件中最常见的一个函数,用于求字符串的长度。 strlen英文全称string length,既字符串长度,可以顾名思义地来记忆。✅这是从c++ reference上截取的介绍,strlen函数的用法就是向其传入一个字符串数组的首元素地址,其返回值是字符的个数。⭕演示代码如下:!!这里应该注意的是,”abc”表示的也是一个字符串数组,其传给strlen函数的是首元素地址。运行结果:下面我们试着运行一下这个代码:运行结果:
❓为什么这里的str2的长度会是13呢?乍一看不是abc三个元素,长度为3吗?这里需要补充一个知识点。在C语言中,系统会在字符串数组最后加上一个’ ’作为结束标志。而strlen函数的工作原理就是计算传入数组 (首元素地址指针指向的数组)在’ ’之前的元素个数,既该字符串长度。
而该代码块中所定义的str数组并不是一个字符串数组,因此’ ’的位置并不在最后一个元素后面,而是一个随机的位置,strlen函数会一直计算长度直到遇见’ ’才停止工作并返回结果。
因此,strlen(str2)会返回一个随机值,该值不代表该数组的长度。
通过调试验证了str1字符串数组末端有一个’ ’而str2没有。strcpy,英文全称copies strcpy,也是一个string头文件中较为常见的函数,用于将一个字符串的内容复制到另一个数组中。(再次引用c++ reference中的描述,发现这种英文的工具网站的描述比中文的清晰地多)✅strcpy的使用方法是向其传入两个指针,前者是目标数组首元素地址指针,后者是原字符串数组地址指针,将原字符串数组(包括末尾结束标志’ ’)拷贝到目标数组中。若目标数组中本身具有元素,则根据原字符串数组的长度一一覆盖。(❗注意:为了防止数组溢出,目标数组长度应大于原字符串数组。)⭕演示代码如下:运行结果:可见,str2的内容完美地拷贝到str1中了。通过调试可以发现,str2的内容覆盖了str1前四个元素,而后面的元素依然存在。但是因为str2的’ ’也跟着拷贝过去了,所以在打印的时候,由于printf格式控制符是%s(既字符串类型),在遇到第一个’ ’时则认为它是字符串结束标志,结束打印。因此,打印出来的结果是字符串”123″。strcmp函数,英文全称com免费云主机域名pares string(字符串比较), 既用于比较两个字符串,那么这里是比较字符串的什么呢?这里的比较是这样的:先比较两个字符串的第一个字符的ASCII码值(这里视为第一对字符),(下面的比较均是ASCII码值的比较)如果第一个字符串的第一个字符大于第二个字符串的第一个字符,则返回1;反之,则返回-1;若两个字符相等,则进行下一对字符的比较,直到出现有一对字符不同则返回相应的值(1或-1)。若两个字符串所有的字符都相同,则返回数字0。传入两个指针,代表两个字符串数组的首元素地址。⭕演示代码如下:运行结果:可见,这里的比较和我们所描述的相一致。
⭕这里应该注意,’