一、strcmp()与strncmp()

strcmp():strcmp(s1,s2);            比較两个字符串。

       strncmp():strncmp(s1,s2);       比較两个字符串前n位



       比較规则:从左到右逐个字符进行比較(ASCII值),直到出现不同的字符或遇到'\0'为止。

       假设所有的字符同样。则觉得两字符串相等,返回值为0。

       假设出现不同的字符,则对第一次出现不同的字符进行比較。比較方法是以s1的第一个不同的字符减去s2的第一个不同的字符。以所得差值作为返回值(大于0。则返回1,小于0则返回-1)。

代码实例:

#include<iostream>
#include<assert.h>
using namespace std; int main()
{
char a[]="aaaae";
char b[]="aaaaf"; int i=strcmp(a,b); cout<<i<<endl; int j=strncmp(a,b,4);//仅仅比較前n个字符 cout<<j<<endl; system("pause");
return 0;
}

执行结果为 -1。0。

二、strcmp()与strncmp()的详细实现

#include<iostream>
#include<assert.h>
using namespace std; int strcmp_m(const char *s1,const char *s2)
{
assert((s1!=NULL)&&(s2!=NULL)); while(*s1!='\0'&&*s2!='\0')//字符串前面部分都同样
{
if(*s1-*s2>0)
return 1;
if(*s1-*s2<0)
return -1;
s1++;
s2++;
}
if(*s1=='\0'&&*s2!='\0')//谁先为'\0',谁就小
return -1;
if(*s2=='\0'&&*s1!='\0')
return 1;
return 0; //同一时候为'\0'
} int strncmp_m(const char *s1,const char *s2,int n)
{
assert((s1!=NULL)&&(s2!=NULL)); while(*s1!='\0'&&*s2!='\0'&&n)//字符串前面部分都同样
{
if(*s1-*s2>0)
return 1;
if(*s1-*s2<0)
return -1;
s1++;
s2++;
n--;
}
if(*s1=='\0'&&*s2!='\0')//谁先为'\0',谁就小
return -1;
if(*s2=='\0'&&*s1!='\0')
return 1;
return 0; //同一时候为'\0'
} int main()
{
char a[]="aaaae";
char b[]="aaaaf"; int i=strcmp_m(a,b); cout<<i<<endl; int j=strncmp_m(a,b,4);//仅仅比較前n个字符 cout<<j<<endl; system("pause");
return 0;
}

执行结果为 -1,0。实现了strcmp()函数与strncmp()函数的功能。

字符串函数---strcmp()与strncmp()具体解释及实现的更多相关文章

  1. 字符串函数---strcmp()与strncmp()详解及实现【转】

    本文转载自:http://blog.csdn.net/lanzhihui_10086/article/details/39829623 一.strcmp()与strncmp() strcmp():st ...

  2. PHP 语法字符串函数 strcmp、strlen 使用及实现

    说明 这里基于 php7.2.5 进行测试,php7 之后内部结构变化应该不是太大,但与 php5.X 有差别. 函数分类 用户自定义函数 say(); function say() { echo & ...

  3. 字符串函数---strcat()与strncat具体解释及实现

    一.strcat()与strncat() strcat():strcat(dest,src);        strcat把src所指向的字符加入到dest结尾处(覆盖原dest结尾处的'\0').并 ...

  4. C语言-字符串函数的实现(一)之strlen

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...

  5. 字符串函数的实现(三)之strcat

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...

  6. C语言-字符串函数的实现(五)之strstr

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...

  7. C语言-字符串函数的实现(二)之strcpy

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...

  8. 实现字符串函数,strlen(),strcpy(),strcmp(),strcat()

    实现字符串函数,strlen(),strcpy(),strcmp(),strcat() #include<stdio.h> #include<stdlib.h> int my_ ...

  9. 内置函数 字符串比较 strcmp 登录密码

    1 //内置函数 字符串比较 strcmp 2 // 原理:将两个字符串从首字母开始,按照ASCII码的顺序逐个比较 3 //字符串1 == 字符串2 返回0 4 //字符串1 < 字符串2, ...

随机推荐

  1. 【kruscal】【最小生成树】【离线】洛谷 P2266 爱的距离

    建图:每个点向它四周的点连边权为两点点权的差的绝对值的边. 由于有多个需要“施法”的点,所以相当于对每个这样的点,询问与它的距离在T以内的最长边的最小值,即多次询问. 最长边最小之类的,肯定是最小生成 ...

  2. 7.2(java学习笔记)URL

    一.URL URL类表示统一资源定位符,指向万维网上“资源”的指针. 资源可以是简单的文件或目录,也可以是对更复杂对象的引用,比如对数据库或搜索引擎的查询. URL即是定位也是资源,定位到网络中一个具 ...

  3. Java高级架构师(一)第26节:测试并调整登录的业务功能

    主Index的处理Java: package com.sishuok.architecture1; import org.springframework.beans.factory.annotatio ...

  4. MetaWeblog是什么

    MetaWebBlog API(MWA)是一个Blog程序接口标准,允许外部程序来获取或者设置Blog的文字和熟悉.他建立在XMLRPC接口之上,并且已经有了很多的实现. 所以现在很多博客系统都支持这 ...

  5. 多IDC GSLB的部署 - ADC技术博客 - 51CTO技术博客

    多IDC GSLB的部署 - ADC技术博客 - 51CTO技术博客 A10

  6. [转载]iOS6新特征:UICollectionView官方使用示例代码研究

    原文地址:iOS6新特征:UICollectionView官方使用示例代码研究作者:浪友dans 注:这里是iOS6新特征汇总贴链接 iOS6新特征:参考资料和示例汇总 这个链接可以学习到UIColl ...

  7. sun.misc.BASE64Decoder导入异常及处理思路

    Java后台保存base64图片数据 使用byte[] bytes = new BASE64Decoder().decodeBuffer(str);需要引入sun.misc.BASE64Decoder ...

  8. [Linux] Ubuntu下非常给力的下载工具

    转载:http://blog.csdn.net/luojiming1990/article/details/9078447 Windows下的下载工具--迅雷,之所以下载速度快,乃是它能搜索资源.为己 ...

  9. 监控Coherence成员的加入和离开集群事件

    对server事件的监控主要是实现MemberListener类,对Cache事件的监控主要通过MapListener 参考代码 package coherencetest; import com.t ...

  10. diskpart分盘代码

    List Disk Select Disk 0 Clean Create Partition Primary Size=512000 Active Format Quick Create Partit ...