当前位置:七道奇文章资讯编程技术VC/C++编程
日期: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++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 操纵 .htaccess 启用 gzip 压缩静态内容
  • 高配置机械在CC攻击需求做的调整
  • Ubuntu proc gcc典型问题
  • Ubuntu 10.10安装低版本gcc和g++编译器
  • Windows2003下配置 Apache2.2 + MySQL 5 + php5 + ZendOptimizer3.3 + .htaccess重写
  • LNMP上进级布置PHP加快器eAccelerator
  • 在Access2007"快速拜候工具栏"增添更多号令
  • Access2007表的数据表视图和计划视图
  • access violation at address的问题
  • VB用Access数据库成立用户登录
  • Web服务器若何防CC攻击
  • Asp 防备CC攻击模块 (Anti-CC.asp)
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .