字符串比较和复制函数

来源:互联网 发布:搜狐微博 知乎 编辑:程序博客网 时间:2024/06/11 06:21

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;
}


0 0
原创粉丝点击