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)来处理。

 
 

转载于:https://www.cnblogs.com/landv/p/11184730.html

《挑战30天C++入门极限》C/C++中字符串常量的不相等性及字符串的Copy相关推荐

  1. 《挑战30天C++入门极限》新手入门:C/C++中枚举类型(enum)

        新手入门:C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来. ...

  2. 【挑战30天掌握】算法与数据结构!!!

    挑战30天从入门到精通,每日打卡,长期有效,持续关注!!!以下除题目外,答案与解析均原创,转载请标明出处,感兴趣的同学欢迎评论区打卡~, 关注公众号[可与],关注更多新鲜内容 [挑战30天掌握]算法与 ...

  3. 2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world...

    2016最简单windows(10) wamp 30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world thrift是什么 最简单解释 thrift是用来帮助各个编程语 ...

  4. 双目摄像头 三维坐标 python_时间编码单像素三维成像:挑战三维成像的速度极限...

    2月14日,清华大学电子工程系信息光电子所陈宏伟教授团队以"Time-encoded single-pixel 3D imaging"为题,在<APL Photonics&g ...

  5. 【30天从入门到放弃】我的机器学习之路 4

    周末注册了kaggle,为了先熟悉一下这个平台.今天用了大半天的时间刷完了一个新手副本任务--泰坦尼克号存活率预测(这个应该算是kaggle上的"hello world"级别的项目 ...

  6. 全网最详细中英文ChatGPT接口文档(六)30分钟快速入门ChatGPT——使用策略和API数据使用策略

    30分钟快速入门使用ChatGPT--使用策略和API数据使用策略 Usage policies使用策略 Disallowed usage of our models 禁止使用我们的模型 API da ...

  7. python趣味编程从入门到人工智能答案-趣味编程挑战:从Python入门到AI应用

    商品详情 书名:趣味编程挑战:从Python入门到AI应用 定价:69.0 ISBN:9787121363177 作者:孙勇 版次:第1版 出版时间:2020-04 内容提要: 本书是趣味编程的入门教 ...

  8. 挑战30天,开发一个消防答题小程序。教你如何处理小程序用户注册

    [吃瓜群众]啦啦啦~,几天不见我又来了.今天更新第二期,这几天在处理用户注册和题库收集. 知识点:注册逻辑.登录缓存 上一期咱们讲了,如何搭一个基本的小程序框架,涉及开源组件(colorUI.Vant ...

  9. JAVA中整型常量的长度,Java基础入门篇(三)——Java常量、变量,

    Java基础入门篇(三)--Java常量.变量, 一.Java常量 (一)什么是常量 常量指的是在程序中固定不变的值,是不能改变的数据.在Java中,常量包括整型常量.浮点型常量.布尔常量.字符常量等 ...

最新文章

  1. 单元测试试图告诉我们关于 Activity 的什么事情:第二部分
  2. Toon Shader
  3. Windows线程同步API
  4. 如果波音公司破产,对美国经济的影响有多大?
  5. IOS 文件读取4种方法 转字符串 和data
  6. Python-类与文件读取结合
  7. Sublime Text快捷键去除空白行
  8. 思科DHCP不同网段通信
  9. python-opencv 角点检测的 FAST 算法
  10. 归并排序(MergeSort)
  11. 五年级上册用计算机探索规律思维导图,五年级上册数学第一单元思维导图 包括小数乘整数小数乘小数积的...
  12. 微软日语输入法安装及简单教程(深度技术 ghost xp)
  13. Apollo详解之canbus模块——综述
  14. sap 服务器文件 暴露pdf地址,访问地址预览
  15. win10怎么设置无线网连接到服务器,win10wifi自动连接在哪里设置_win10设置自动连接wifi的方法...
  16. (论文阅读笔记)Deep Learning based Recommender System: A Survey and New Perspectives
  17. RuoYi-Vue——关于登录后不同角色跳不同页面
  18. 盲打打字php,盲打26键打字口诀是什么
  19. DSP28377s系统时钟配置注意事项
  20. 抖音协议算法教- API学习

热门文章

  1. 【Python Django2.0入门教程】ORM之QuerySet 数据查询API:all get filter distinct first last count
  2. ansible roles和django项目的整合
  3. k8s pod健康检查(存活、就绪检查):livenessProbe策略配置示例
  4. python3 随机数函数
  5. 请简述一下线程的sleep()方法和yield()方法的区别?
  6. @RabbitListener组合注解消费消息
  7. Hibernate的配置详解
  8. 没有shell63号单元_苏教版15年级数学上册第七单元整理与复习+同步练习
  9. mysql数据库管理文件_数据库管理中文件的使用_MySQL
  10. Collection和Collections之间的使用与区别