日期:2011-03-22 13:55:00 来源:本站整理
C/C++中字符串常量的不相等性及字符串的Copy[VC/C++编程]
本文“C/C++中字符串常量的不相等性及字符串的Copy[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
#include<iostream>
voidmain(void)
{
if("test"=="test")
{
cout<<"相等";
}
else
{
cout<<"不相等";
}
}
上面的代码我们测试两个内容为test的字符串常量能否相等,按照常理,应当是相等的,这些在一些历程式语言中会得到相等的结论,但在c/c++却不是这样.
为什么呢?
答案在这里:因为字符串常量存储在计算机内存中,两个字符串常量的地址均不相同,所以这样的对比自然就不会得到我们所需求的后果,假如要举行能否相等的对比应当利用strcmp()这个涵数举行对比!
#include<iostream>
#include<string>
usingnamespacestd;
voidmain(void)
{
if(strcmp("test","test")==0)
{
cout<<"相等";
}
else
{
cout<<"不相等";
}
cin.get();
}
strcmp()的函数原形是,int strcmp(const char* str1,const char* str)
相当将会返回一个等于0的整数,不相等的时刻将会返回一个非0整数.
#include<iostream>
#include<string>
usingnamespacestd;
voidmain(void)
{
chartest[]="teststr!";
charstr[15];
strcpy(str,test);
cout<<str<<endl;
inta[]={1,2,3,4,5};
intb[5];
memcpy(b,a,sizeof(a));
for(inti=0;i<5;i++)
{
cout<<b[i]<<",";
}
cin.get();
}
上面的代码中的strcpy用来处理字符串数学组的copy,由于字符串数组属于const char*也就是常量指针所以是不能用a="test str!";的方法赋值的,接在背面的memcpy用于处理非末尾的数组的copy处理,memcpy第三个参数是设置b在内存中所需求的内存空间大小所以用sizeof(a)*sizeof(int)来处理.
以上是“C/C++中字符串常量的不相等性及字符串的Copy[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论