我的编程空间,编程开发者的网络收藏夹
学习永远不晚

c语言如何进行字符串比较

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

c语言如何进行字符串比较

这篇文章将为大家详细讲解有关c语言如何进行字符串比较,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

C语言是什么

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储器。

比较方法:1、bcmp(),比较字符串的前n个字节是否相等;2、strcmp(),区分大小写的比较字符串;3、stricmp(),不区分大小写的比较字符串;4、strncmp()或strnicmp(),区分大小写的比较字符串的前n个字符。

本教程操作环境:windows7系统、c99版本、Dell G3电脑。

使用bcmp()--比较内存(字符串)的前n个字节是否相等

原型为:

int bcmp(const void *s1, const void * s2, int n);

【参数】s1, s2 为需要比较的两块内存(或两个字符串),n 为要比较的长度。

【返回值】如果 s1, s2 的前 n 个字节相等或者 n 等于 0,则返回 0,否则返回非 0 值。

bcmp() 函数不检查NULL。

实际上,bcmp() 和 memcmp() 功能相同,用来比较内存块的前 n 个字节是否相等,但是 s1, s2 两个参数为指针,又很奇怪的位于 string.h 文件中,也可以用来比较字符串。

示例:

#include <stdio.h>#include <string.h>int main (){    char *s1 = "Golden Global View";    char *s2 = "Golden Global View";    if( !bcmp(s1, s2, 7) )        printf("s1 equal to s2 in first 7 bytes");    else        printf("s1 not equal to s2 in first 7 bytes");    return 0;}

使用strcmp()--比较字符串(区分大小写)

其原型为:

int strcmp(const char *s1, const char *s2);

【参数】s1, s2 为需要比较的两个字符串。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。

【返回值】若参数s1 和s2 字符串相同则返回0。s1 若大于s2 则返回大于0 的值。s1 若小于s2 则返回小于0 的值。

注意:strcmp() 以二进制的方式进行比较,不会考虑多字节或宽字节字符。

示例:

#include <string.h>main(){    char *a = "aBcDeF";    char *b = "AbCdEf";    char *c = "aacdef";    char *d = "aBcDeF";    printf("strcmp(a, b) : %d\n", strcmp(a, b));    printf("strcmp(a, c) : %d\n", strcmp(a, c));    printf("strcmp(a, d) : %d\n", strcmp(a, d));}

输出:

strcmp(a, b) : 32strcmp(a, c) :-31strcmp(a, d) : 0

使用stricmp()--比较字符串(不区分大小写)    

原型为:

int strcmp(char *s1, char *s2);

【参数说明】s1, s2 为需要比较的两个字符串。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。stricmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。

【返回值】若参数s1 和s2 字符串相同则返回0。s1 若大于s2 则返回大于0 的值。s1 若小于s2 则返回小于0 的值。

注意:stricmp()是Windows下特有的,linux下具有相同功能的函数是strcasecmp(),包含在头文件strings.h下。

另外一个不区分大小写比较字符串的函数是strcmpi(),strcmpi()是stricmp()的宏定义,实际未提供此函数。

示例:比较两个字符串的大小。

#include<stdio.h>#include<string.h>int main(void){        char* s1 = "http://see.xidian.edu.cn/cpp/u/biaozhunku/";    char* s2 = "http://see.xidian.edu.cn/cpp/shujujiegou/";        int result = stricmp(s1,s2);  // 也可以改成strcmpi()    if(result>0)    {        printf("Result: s1 > s2");    }    else if(result<0)    {        printf("Result: s1 < s2");    }    else if(result == 0)    {        printf("Result: s1 = s2");    }       getchar();    return 0;}

输出:

Result: s1 > s2

使用strncmp()--比较字符串的前n个字符(区分大小写)    

其原型为:

int strncmp ( const char * str1, const char * str2, size_t n );

【参数】str1, str2 为需要比较的两个字符串,n为要比较的字符的数目。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strncmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,直到字符结束标志'\0',若差值不为0,则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。

注意:要比较的字符包括字符串结束标志'\0',而且一旦遇到'\0'就结束比较,无论n是多少,不再继续比较后边的字符。

【返回值】若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 若小于s2,则返回小于0的值。

注意:如果两个字符不同,GCC返回该字符对应的ASCII码的差值,VC返回-1或1。但是让人为难的是,strnicmp()、strcmp()、stricmp()在GCC和VC下都返回-1或1,而不是ASCII的差值。

实例:对2组字符串进行比较。

#include<stdio.h>#include<string.h>int main(void){    char* s1 = "http://see.xidian.edu.cn/cpp/u/xitong/";    char* s2 = "HTTP://see.xidian.edu.cn/cpp/u/xitong/";    char* s3 = "abc";    char* s4 = "abcxyz";    char* s5 = "123456";    char* s6 = "123";    printf("s1-s2=%d\n", strncmp(s1, s2, 20));  // 是否区分大小写    printf("s3-s4=%d\n", strncmp(s3, s4, 100));  // s3的长度小于s4    printf("s5-s6=%d\n", strncmp(s5, s6, 100));  // s5的长度大于s6    return 0;}

VC6.0下运行结果:

s1-s2=1s3-s4=-1s5-s6=1

GCC下运行结果:

s1-s2=32s3-s4=-120s5-s6=52

使用strnicmp()--比较字符串的前n个字符(区分大小写)    

原型为:

int strnicmp ( const char * str1, const char * str2, size_t n );

【参数】str1, str2 为需要比较的两个字符串,n为要比较的字符的数目。

【返回值】若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 若小于s2,则返回小于0的值。

与strncmp()不同的是,如果两个字符不同,GCC和VC都返回-1或1,而不是返回对应的ASCII的差值。

有关strnicmp()的其他说明请查看strncmp(),这里仅举例演示,不再赘述。

另外一个不区分大小写比较字符串前n个字符的函数是strncmpi(),strncmpi()是strnicmp()的宏定义,实际未提供此函数。

示例:对6组字符串进行比较。

#include<stdio.h>#include<string.h>int main(void){    char* s1 = "http://see.xidian.edu.cn/cpp/u/xitong/";    char* s2 = "HTTP://see.xidian.edu.cn/cpp/u/xitong/";    char* s3 = "abc";    char* s4 = "abcxyz";    char* s5 = "123456";    char* s6 = "123";    printf("s1-s2=%d\n", strnicmp(s1, s2, 20));  // 是否区分大小写    printf("s3-s4=%d\n", strnicmp(s3, s4, 100));  // s3的长度小于s4    printf("s5-s6=%d\n", strnicmp(s5, s6, 100));  // s5的长度大于s6    return 0;}

VC6.0下运行结果:

s1-s2=0s3-s4=-1s5-s6=1

GCC下运行结果:

s1-s2=0s3-s4=-1s5-s6=1

关于“c语言如何进行字符串比较”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

c语言如何进行字符串比较

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

c语言如何进行字符串比较

这篇文章将为大家详细讲解有关c语言如何进行字符串比较,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方
2023-06-14

C语言如何比较两个字符串

本文介绍了4种C语言中比较两个字符串的方法:字符数组比较、使用库函数、使用指针比较和strlen()函数比较。字符数组比较是最直接但效率最低的方法,而使用库函数strcmp()是最常用的。指针比较最有效率,但复杂度较高;strlen()函数比较仅适用于长度相同的字符串。选择最佳方法取决于具体情况。
C语言如何比较两个字符串
2024-04-02

go语言如何比较字符串

这篇文章主要介绍“go语言如何比较字符串”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“go语言如何比较字符串”文章能帮助大家解决问题。比较方法:1、直接使用“==”运算符比较,语法“str1 ==
2023-07-05

Go语言如何比较两个字符串

Go语言提供两种方法比较字符串:==运算符:比较值相等。strings.Compare函数:比较字节顺序,返回0(相等)、1(大于)或-1(小于)。需要注意的是:比较大小写敏感。strings.Compare基于字节顺序(Unicode代码点),而不是值。字符串比较适用于排序、搜索、验证和数据处理等应用。在性能方面,对于小字符串,==运算符更快;对于大字符串,strings.Compare函数性能更佳。建议根据用例选择适当的方法。
Go语言如何比较两个字符串
2024-04-02

c语言怎么用strcpy比较字符串大小

在C语言中,可以使用strcmp函数来比较两个字符串的大小。strcpy函数是用来复制一个字符串到另一个字符串中的函数,并不用于比较字符串大小。下面是一个示例代码来比较两个字符串的大小:#include #inclu
c语言怎么用strcpy比较字符串大小
2024-03-02

如何使用go语言实现字符串比较

今天小编给大家分享的是如何使用go语言实现字符串比较,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。go语言比较字符串的方法:1、使用“==”运算符,语法“字符串1==字符串2”;2、
2023-06-15

c语言中怎么用strcmp比较两个字符串

在C语言中,可以使用strcmp函数来比较两个字符串。strcmp函数是一个标准库函数,用于比较两个字符串的大小。strcmp函数的原型如下:```cint strcmp(const char *str1, const char *str2
2023-10-10

利用Java如何实现对字符串进行比较

本篇文章给大家分享的是有关利用Java如何实现对字符串进行比较,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。CompareTo()方法简介首先,它属于java.lang.Str
2023-05-31

C语言如何对字符串进行语法高亮显示

在C语言中,实现语法高亮有助于提高代码可读性。本文探讨了四种常见方法:正则表达式:使用模式匹配来识别文本中的语法元素。字符指针和字符串比较:逐个字符扫描文本,并比较预定义关键字。有限状态机:模拟语法状态转换,根据输入过渡到不同状态。代码解析器:分解代码并生成语法树,用于语法高亮。选择方法取决于任务的复杂度,从简单的正则表达式到更复杂的代码解析器。
C语言如何对字符串进行语法高亮显示
2024-04-02

jquery如何比较字符串

jQuery提供多种字符串比较方法,满足不同需求:完全相等比较(.equals())不区分大小写比较(.equalsIgnoreCase())前缀比较(.startsWith())后缀比较(.endsWith())子字符串搜索(.contains())字典序比较(.compareTo())区域性比较(.localeCompare())正则表达式匹配(.match())选择合适的方法取决于比较类型、字符串长度、性能要求和区域性考虑。
jquery如何比较字符串
2024-04-02

php如何比较字符串

这篇文章将为大家详细讲解有关php如何比较字符串,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP不区分大小写比较字符串的方法:1、使用“strcasecmp(字符串1,字符串2)”语句;2、使用“st
2023-06-15

C语言如何从指定的开始长度比较两个字符串

C语言可通过strncmp()函数比较字符串从指定开始长度的部分内容。该函数与strcmp()相似,但仅比较指定个数的字符。strncmp()的语法为:strncmp(str1,str2,n),其中str1和str2是字符串,n指定要比较的字符数。返回值为0(相等)、正数(大于)或负数(小于)。使用时注意大小写敏感,并确保指定字符数不大于较短字符串的长度。
C语言如何从指定的开始长度比较两个字符串
2024-04-02

c语言怎么比较两个字符串是否相等

在C语言中,可以使用strcmp函数来比较两个字符串是否相等。strcmp函数的原型为:int strcmp(const char *str1, const char *str2);该函数接受两个字符串作为参数,然后返回一个整数值。当两个字
2023-10-10

C语言如何输入一行字符串

在C语言中,可以使用fgets函数来输入一行字符串。fgets函数的原型如下:```cchar *fgets(char *str, int n, FILE *stream);```其中,str是一个字符数组,用于存储输入的字符串;n是一个整
2023-08-08

php字符串如何进行大小写不敏感比较

这篇文章主要讲解了“php字符串如何进行大小写不敏感比较”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php字符串如何进行大小写不敏感比较”吧!方法:1、用“strcasecmp(strin
2023-06-20

c语言怎么对比字符串

c 语言中比较字符串的方法有:使用 strcmp() 函数比较两个字符串的全部内容。使用 strncmp() 函数比较两个字符串的前 n 个字符。使用循环和字符比较手工比较字符串。C 语言中比较字符串的方法在 C 语言中,字符串表示为字符
c语言怎么对比字符串
2024-05-21

MySQL如何进行区分大小写的字符串比较?

As we know that MySQL is not case-sensitive while comparing characters but it can be changed i.e. MySQL can perform case
2023-10-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录