本记为观看B站上 C/C++ 算法竞赛语法课『录制·纯享版』后的学习笔记。如有错误欢迎指正。
string.h
string.h,为C语言的字符串库。它的头文件是:
#include<string.h>
此库中含有多种函数,以下进行介绍。
1、strlen( )
strlen(),为计算字符串的长度。特点:不把字符数组中的 \0 算做长度。
关于字符串输出,有个值得注意的点:fgets(),的录入方式会把 \n 算做长度输出。其他 cin>> 或 cin.getline() 的录入方式则不会出现该情况。例如:
#include<iostream>
#include<string.h>
using namespace std;
int main(void)
{
char str[1024]={'1','2','3','\0'};
fgets(str,1024,stdin);
//cin>>str;
//cin.getline(str,1024);
cout<<strlen(str)<<endl;
return 0;
}
上述代码,fgets()的录入方式,输出长度为4。 cin>> 或 cin.getline() 的录入方式,输出长度为3。
2、strcmp( )
strcmp(a,b),为比较字符串a,b大小。
原则:2个字符串相等 返回0;2个字符串不相等,当a>b时 返回1 ;
当a>b时 返回-1。
例如:
#include<iostream>
#include<string.h>
using namespace std;
int main(void)
{
char a[]="123";
char b[]="23";
cout<<strcmp(a,b)<<endl;
return 0;
}
上述结果返回-1,因为b的第一个数 2大于a的第一个数 1,所以b>a,后面的数不用再比。
3、strcpy( )
strcpy( a,b),为拷贝。即,把a的内容清空,换成b的内容。例如:
char a[]="123";
char b[]="45";
strcpy(a,b);
cout<<a<<endl;
上述结果,a输出的为45。
4、strcat( )
strcat(a, b),为拼接函数,实现字符串的拼接。即,直接把b拼接到a后面。特点:有自动扩容功能。例如:
char a[7]="hello ";
char b[6]="world";
strcat(a,b);
cout<<a<<endl;
上述结果输出为,hello world .