1.strcmp函数
strcmp函数用于比较两个字符串的大小,返回比较的结果。
函数原型:extern int strcmp(const char *s1,const char *s2);
头文件#include<cstring> 或者#include<string.h>
说明:当s1<s2时,返回负值;当s1=s2时,返回0;当s1>s2时,返回正值。即:两个字符串自左向右逐个字符比较(按ASCII值大小比较),直到出现不同的字符或者遇到'\0'为止。
strcmp函数只能用于比较字符串,不能用于比较数字等其他形式的参数。
简单的实例
#include<iostream>
using namespace std;
int main()
{
char s1[20],s2[20];
while(cin>>s1>>s2)
{
if(strcmp(s1,s2)==0)
cout<<"相等"<<endl;
else if(strcmp(s1,s2)<0)
cout<<"小于"<<endl;
else
cout<<"大于"<<endl;
}
return 0;
}
应当注意的是:字符串是数组类型而非基本数据类型,不能用关系运算进行大小比较。
if("ABC">"DEF") /*错误的字符串比较方法*/
if(strcmp("ABC","DEF")) /*正确的字符串比较*/
2.strcpy函数
原型声明:extern char* strcpy(char *dest,const char *src);
头文件:#include<string>或者#include<string.h>
用法:把从src地址开始并含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串,返回指向dest的指针。
附加说明:当形式为strcpy(s1,s2); 意为:把s2中的内容连同字符串结束符一起复制到s1;s1必须为字符串变量,而不能是字符串常量。复制后s2保持不变。
注意:字符串是数组类型,两个字符串复制不能通过赋值运算进行。
t=s; /*错误的字符串复制*/
strcpy(t,s); /*正确的字符串复制*/
实例
#include<iostream>
using namespace std;
int main()
{
char s1[20],s2[20];
while(cin>>s1>>s2)
{
cout<<s1<<endl;
cout<<s2<<endl;
strcpy(s1,s2);
cout<<s1<<endl;
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
char s1[20]="abcd",s2[20];
cout<<s1<<endl;
strcpy(s2,s1); //用s1为s2初始化赋值
cout<<s1<<endl;
return 0;
}