常见的处理字符串的函数

strlen或者**.length()**获取字符串长度

**strcmp(a,b)**从第一个字符开始比较字符串的ascii码,a>b 返回正数,a=b返回0,a<b返回负数

strcat(被连接的一方,连接的一方)
源字符串必须以 ‘\0’结束。
目标空间必须有足够的大,能容纳下源字符串的内容。
目标空间必须可修改。

**strcpy(a,b)**将a字符串复制到b字符串
源字符串必须以 ‘\0’结束。
会将源字符串中的 ‘\0’拷贝到目标空间。
目标空间必须足够大,以确保能存放源字符串。
目标空间必须可变。
’\0’是判定字符数组结束的标识,表示这串字符到结尾了;
注意:在字符数组中’\0’是占一个位置的!

memset
memset是对一个字节进行操作的,所以如果是对char类型进行操作的话,完全没有问题,因为char类型本身就是占一个字节。但是对其余类型的变量进行操作,只有赋值0的时候,才是正确的,否则就会出现其他的值。

reverse翻转函数
reverse(str.begin(), str.end());在涉及到回文的问题时很好用。

**substr()**是C++语言函数,用于c++的string字符串,主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度。如果没有指定长度_Count或_Count+_Off超出了源字符串的长度,则子字符串将延续到源字符串的结尾。

*atoi(const char str) 把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。

**.c_str()**可以把string字符串转换,使之可以像char数组一样操作

其实,这是用指针的方法输入一个字符串。图中的str是一个字符数组,可以看作是一个字符串。而这句
scanf(“%s”,str+1);
就是输入。因为如果直接用 scanf(“%s”,str); 的话,就会出现一个问题:scanf函数遇到空格或TAB,就会停下来。所以用指针的方式就可以防止这种情况发生。
而且字符数组的下标从1开始向后传递