1.#include<string.h>中的常用函数

1.strcat

(1)一般形式:strcat(字符串1,字符串2)

(2)功能:将字符串2拼接到字符串1之后

(3)函数声明:char *strcat(char *dest, const char *src)

(4)几点说明:

当字符串1中间有\0时,strcat会把字符串2拼接到第一个\0后面,得到的字符串1输出时,遇到\0停止

自己用strcat时,遇到了这种情况:

char a[100] = "123", b[] = "456";
strcat(a, b);

 

错误C4996 'strcat':

This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. 

我的vs不让我用strcat!不管我的a数组有多大,就是不让我用!

(包括下面的strcpy等,都不让我用,让我换成strcpy_s来用)
但是它允许我用strcat_s,而且这个函数更加安全,不会出现a数组接上b之后爆掉的情况

对于strcat_s,有以下几点:

  1. strcat_s是为了解决字符串拼接溢出在VS2005之后引进的更具安全性的函数。
  2. strcat_s本身保留了两个变量strcat的特性,即可以使用两个参数的函数原型。如stract_s(str1,str2);将str2拼接到str1后。
  3. strcat_s新增三个参数的函数原型,如strcat_s(str1,sizeof(str1),str2)。超出范围会有断言。

 

 

2.strcmp与strncmp

(1)一般形式:

  • strcmp(字符串1,字符串2)
  • strncmp(字符串1,字符串2,n)

(2)功能:

  • strcmp:比较字符串s1和s2
  • strncmp:比较字符串s1和s2的前n位

(3)函数声明:strcmp(const char *s1,const char * s2)

(4)几点说明:

  • 当s1<s2时,返回为负数 注意不是-1
  • 当s1=s2时,返回值为0
  • 当s1>s2时,返回正数 注意不是1
  • 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
  • 特别注意:strcmp只能比较字符串,不能比较数字等其他形式的参数。
  • ps:可以用来排字典序

具体见之前的总结

https://www.cnblogs.com/NKHTH/p/14332594.html


 

 

3.strcpy与strncpy

(1)一般形式:

  • strcpy(字符串1,字符串2)
  • strncpy(字符串1,字符串2,n)

(2)功能:

  • strcpy:将字符串2的内容拷贝到字符串1里
  • strncpy:将字符串2的前n位拷贝到字符串1里

(3)函数声明:char *strcpy(char *destin, char *source);

(4)几点说明:

不知道是怎么回事,自己的vs用这两个函数,并不是只将字符串2前n位覆盖字符串1的前n位,而是直接全覆盖

如:

char str[10] = "abcdef", str1[10] = "12345";
strncpy_s(str, str1, 3);
cout << str;

结果为123


 

 

4.erase

 (1)一般形式;

  1. str.erase(pos,n);
  2. str.erase(position);
  3. str.erase(first,last);

(2)功能:(与1中的一一对应)

  1. 删除从下标pos开始的n个字符,比如erase(0,1)就是删除第一个字符
  2. 删除postion处的一个字符(position是一个string类型的迭代器)
  3. 删除从first到last之间的字符(first和last都是迭代器)

(3)函数声明:

  1.  basic_string & erase(size_type pos=0, size_type n=npos);

即从给定起始位置pos处开始删除, 要删除字符的长度为n, 返回值修改后的string对象引用

         2. iterator erase(const_iterator position)
删除迭代器[first, last)区间的所有字符,返回一个指向被删除的最后一个元素的下一个字符的迭代器.

         3. iterator erase(const_iterator first, const_iterator last)

(4)几点说明:


 

 

5.

posted @ 2021-02-01 21:33  _翩若惊鸿  阅读(196)  评论(0编辑  收藏  举报