C/C++中字符串常量的不相等性及字符串的Copy

#include <iostream> 
 
void main(void) 

    if("test"=="test") 
    { 
        cout<<"相等"; 
    } 
    else 
    { 
        cout<<"不相等"; 
    } 
}

  上面的代码我们测试两个内容为test的字符串常量是否相等,按照常理,应该是相等的,这些在一些过程式语言中会得到相等的结论,但在c/c++却不是这样。

  为什么呢?

  答案在这里:因为字符串常量存储在计算机内存中,两个字符串常量的地址均不相同,所以这样的比较自然就不会得到我们所需要的结果,如果要进行是否相等的比较应该使用strcmp()这个涵数进行比较!

#include <iostream> 

#include <string> 
using namespace std; 
void main(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> 
using namespace std; 
void main(void)   
{   
    char test[]="test str!"; 
    char str[15]; 
    strcpy(str,test); 
    cout<<str<<endl; 
 
    int a[]={1,2,3,4,5}; 
    int b[5]; 
    memcpy(b,a,sizeof(a)); 
    for(int i=0;i<5;i++) 
    { 
        cout<<b[i]<<","; 
    } 
    cin.get(); 
}

  上面的代码中的strcpy用来处理字符串数学组的copy,由于字符串数组属于const char*也就是常量指针所以是不能用a="test
str!";的方式赋值的,接在后面的memcpy用于处理非\0结尾的数组的copy处理,memcpy第三个参数是设置b在内存中所需要的内存空间大小所以用sizeof(a)*sizeof(int)来处理。

 
 

最新文章

  1. 学习Maven之Cobertura Maven Plugin
  2. Spring中的SPEL
  3. 发现大量的TIME_WAIT解决办法
  4. 《EXO指数型组织》阅读脑图
  5. 使用Javascript无限添加QQ好友原理解析
  6. Android selector选择器的使用
  7. 9个超绚丽的HTML5 3D图片动画特效
  8. simplified build configuration
  9. 《Programming WPF》翻译 第7章 4.转换
  10. 1.1Hibernate持久化类和Hibernate持久化对象状态
  11. Nexus 6P 解锁+TWRP+CM
  12. Vue之resource请求数据
  13. Eclipse 中报错的阅读顺序
  14. Sunday串匹配算法 C语言实现
  15. QT---事件系统
  16. C#之实现Scoket心跳机制
  17. 【NIFI】 Apache NiFI 之 ExecuteScript处理(一)
  18. tqdm:Python 进度条
  19. libcurl HTTP POST请求向服务器发送json数据
  20. win8升级8.1提示卸载sentinel runtime drivers

热门文章

  1. c# Path.Combine
  2. 关于Java无法解码(ajax编码 Java解码)
  3. .net core web API使用Identity Server4 身份验证
  4. 3)创建,测试,发布 第一个NET CORE程序
  5. C# vb实现浮雕特效滤镜效果
  6. MySQL事务和事务隔离级别
  7. bat计算指定文件MD5并输出txt
  8. 每周分享五个 PyCharm 使用技巧(六)
  9. Python与Golang协程异同
  10. 浅谈React编程思想