本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/cpp_strcmp.html #include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
#include <Windows.h>using namespace std;
#pragma comment(lib, "winmm.lib")int StringCompare(){string strSource = "hello world!";string strDest = "I am a luck dog!";LARGE_INTEGER m_liPerfFreq = { 0 };QueryPerformanceFrequency(&m_liPerfFreq);LARGE_INTEGER m_liPerfStart = { 0 };QueryPerformanceCounter(&m_liPerfStart);for (int i = 0; i < 1e8; ++i)strSource == strDest;LARGE_INTEGER liPerfNow = { 0 };QueryPerformanceCounter(&liPerfNow);int time = (((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * 1000) / m_liPerfFreq.QuadPart);cout << time << endl;return 0;}int CharCompare(){char str1[100] = "hello world!";char str2[100] = "I am a luck dog!";LARGE_INTEGER m_liPerfFreq = { 0 };QueryPerformanceFrequency(&m_liPerfFreq);LARGE_INTEGER m_liPerfStart = { 0 };QueryPerformanceCounter(&m_liPerfStart);for (int i = 0; i < 1e8; ++i)strcmp(str1, str2);LARGE_INTEGER liPerfNow = { 0 };QueryPerformanceCounter(&liPerfNow);int time = (((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * 1000) / m_liPerfFreq.QuadPart);//单位精确到毫秒,要是不乘以1000则就是秒cout << time << endl;return 0;
}int _tmain(int argc, _TCHAR* argv[]){StringCompare();CharCompare();return 0;
}

去掉10的8次方for循环的影响

#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
#include <Windows.h>using namespace std;
#pragma comment(lib, "winmm.lib")int StringCompare(){string strSource = "hello world!";string strDest = "I am a luck dog!";LARGE_INTEGER m_liPerfFreq = { 0 };QueryPerformanceFrequency(&m_liPerfFreq);LARGE_INTEGER m_liPerfStart = { 0 };QueryPerformanceCounter(&m_liPerfStart);for (int i = 0; i < 1e8; ++i);//strSource == strDest;
LARGE_INTEGER liPerfNow = { 0 };QueryPerformanceCounter(&liPerfNow);int time = (((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * 1000) / m_liPerfFreq.QuadPart);cout << time << endl;return 0;
}int CharCompare(){char str1[100] = "hello world!";char str2[100] = "I am a luck dog!";LARGE_INTEGER m_liPerfFreq = { 0 };QueryPerformanceFrequency(&m_liPerfFreq);LARGE_INTEGER m_liPerfStart = { 0 };QueryPerformanceCounter(&m_liPerfStart);for (int i = 0; i < 1e8; ++i);//strcmp(str1,str2);
LARGE_INTEGER liPerfNow = { 0 };QueryPerformanceCounter(&liPerfNow);int time = (((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * 1000) / m_liPerfFreq.QuadPart);//单位精确到毫秒,要是不乘以1000则就是秒cout << time << endl;return 0;
}int _tmain(int argc, _TCHAR* argv[]){StringCompare();CharCompare();return 0;
}

windows里

LARGE_INTEGER

QueryPerformanceCounter

QueryPerformanceFrequency

timeGettime

综上所述: 当达到10的8次方这个数量级时,string的相等操作确实是要比strcmp耗时,虽然string的重载的相等操作是memcmp内存的比较,但是之前还是有很多的判断的;

转载于:https://www.cnblogs.com/YinaPan/p/cpp_strcmp.html

strcmp和==比较相关推荐

  1. php 比较字符串差,PHP字符串比较函数strcmp()和strcasecmp()使用总结

    比较字符串是任何编程语言的字符串处理功能中重要的特性之一.在PHP中除了可以使用比较运算符号(==.)加以比较外,还提供了一系列的比较函数,使PHP可以进行更复杂的字符串比较.如strcmp().st ...

  2. 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove

    模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove ================================ 1 strstr 字符 ...

  3. 转:strcat与strcpy与strcmp与strlen

    转自:http://blog.chinaunix.net/uid-24194439-id-90782.html strcat 原型:extern char *strcat(char *dest,cha ...

  4. (C++)strlen(),strcmp(),strcpy(),strcat()用法

    string.h中包含了许多用于字符数组的函数.使用前需要在程序开头加string.h©或cstring(C++)头文件 strlen() 作用:得到字符数组第一个结束符\0前的字符的个数 #incl ...

  5. C/C++中strlen(),strcpy(),strcat()以及strcmp()的代码实现--学习笔记

    以下代码是自己学习过程中通过借鉴加上自己的理解编写出的代码已经在VC++2008版本上调试通过,主函数因为很简单所以没有附上. 1. strlen() int my_strlen(char *str) ...

  6. C语言不用strcmp函数比较字符串大小

    C语言不用strcmp函数比较字符串大小 #include <stdio.h> int main(){int i, res;char s1[100], s2[100];printf(&qu ...

  7. strcmp函数和strcpy函数

    (一)strcmp函数 strcmp函数是比較两个字符串的大小,返回比較的结果.一般形式是: i=strcmp(字符串,字符串); 当中,字符串1.字符串2均可为字符串常量或变量:i   是用于存放比 ...

  8. c语言p gt name,c语言中strcmp(p-name,s)是什么意思?

    c语言中strcmp(p->name,s)是什么意思?0 cg4tf2q52016.06.28浏览142次分享举报 网上看的c语言做学生管理表中的一个查找函数,其中有一段判断输入的名字与管理表中 ...

  9. C基础--字符串操作函数(strlen,strcpy,strcmp,strcat,strstr,strtok,strchr)

    #include <stdio.h> #include <string.h> int main(void) {//char dest[10];//#define NULL (v ...

  10. strcmp可以比较数组么_6.3 C语言字符数组

    01字符数组的定义 1.用来存放字符数据的数组是字符数组.字符数组中的一个元素存放一个字符. 2.定义字符数组的方法和定义数值型数组的方法类似. 例子: char c[10]; 02 字符数组的初始化 ...

最新文章

  1. HTTP Content-Length与分块传输
  2. HTML 5 Web 音频
  3. 在8086模拟器中运行汇编求平均值程序
  4. c++计算eigen随笔(2)
  5. 格子箱被评选为12家最值得注意的亚洲初创科技公司之一
  6. 谷歌浏览器怎么设置中文
  7. OpenJudge NOI 1.5 08:多边形内角和
  8. php const用法详解
  9. python80行代码写一个文件整理软件
  10. valgrind 检查内存泄露
  11. css文件内容的组织
  12. 初始化和清理(构造器+重载/重写+this关键字)
  13. 2021 王道考研 数据结构+习题讲解
  14. 驱动精灵w8ndows xp sp2,爱普生Epson TM-T86FII打印机驱动官方正式版下载,适用于winxp,winvista,win7,win8,win10-驱动精灵...
  15. 水煮肉片+各种牛肉等四种川味特色菜
  16. 我用Python分析了1500家电商的销售数据,竟发现了进口车厘子的秘密
  17. springboot班级同学录网站
  18. matlab实现模糊控制器并仿真,用Matlab实现空调温度模糊控制器的设计与仿真.pdf...
  19. vue 实现上拉加载下拉刷新(思路贼清晰)
  20. 旅行:旅行的意义是旅行本身没有意义

热门文章

  1. 微信小程序怎么上架和发布商品?
  2. python爬虫案例-爬取当当网数据
  3. 从0到N建立高性价比的大数据平台
  4. 零基础转行IT学习什么好?
  5. 浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
  6. 亿级流量电商详情页系统实战-25.亿级流量商品详情页的多级缓存架构介绍
  7. 批量注释基因到基因座上(map gene to locus)
  8. kong/kongA docker部署+汉化
  9. java计算机毕业设计Web网上购书后台管理系统(附源码、数据库)
  10. 【考】数据库原理与技术 数据查询