c语言strcmp代码,在c语言中strcmp

本文目录一览:

求c语言实现strcmp功能的自编程序

#include stdio.h

int main()

{

int strcmp(char * p1,char * p2);

char * s1 = “hello world”;

char s2[] = “hello_world”;

char s3[] = “hello world”;

if(strcmp(s1,s2)==0){

printf(“String s1 and s2 are equal!\n”);

}

else{

printf(“String s1 and s2 are not equal!\n”);

}

if(strcmp(s1,s3)==0){

printf(“String s1 and s3 are equal!\n”);

}

else{

printf(“String s1 and s3 are not equal!\n”);

}

getchar();

return 0;

}

//自己编写的一个比较字符串的函数

int strcmp(char * p1,char * p2)

{

for(;;)

{

if(*p1==’\0′  *p2==’\0′){

return 0;

}

if(*p1!=*p2){

return (*p1 – *p2);

}

p1++;

p2++;

}

}

帮我写一个简易的strcmp函数(C语言)。

① c的strcmp简洁实现可以是这样的:

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

{

    while(*s1  (*s1==*s2))

        s1++,s2++;

    return *(const unsigned char*)s1-*(const unsigned char*)s2;

}

② strcmp的返回值可以有3种,即0, =0, 0 (任意一个数值),代表的含义分别是: str1 strcmp用的是二进制比较,意思是按字典顺序,比如: 字母a 字母 b;而a A。 (这是因为a的ascii码是97,而A的是65)。

理解了这个,上面的代码就好理解了。 while就是s1,s2从头到位一个一个字符的比较。如果s1为空,或者s1不等于s2,则中断循环 (s1不为空,s2为空,则是*s1 != *s2,退出循环)。返回值是循环中断时的字符(分别s1和s2对应的位置,*s1-*s2, 如果是上面说的 ‘a’ – ‘A’, 那么返回的就是97-65=32),那么意味着a在A前面, strcmp 0。

之所以先转换成const unsigned char*再作减法,是由于c的char有三种: char, signed char 和unsigned char。 char就是’a’这样的, 而 signed char 则是-127~126之间的数值,而unsigned char则是0~255之间的一个值。 转换成unsigned char就是要“确保” ‘a’ — 97。 你要不转换,也是可以的。

说明一点,很多c的lib实现,比如gnu c, 都是把结果处理成: -1, 0, 1, 而不是这个字符对应的ascii码的差值。

C语言strcmp函数是什么样的代码

1、cmp

compare,比较的缩写。

2、strcmp是c语言中头文件string.h(字符串函数)中定义的一个用于对两组字符串进行比较的函数,它的返回值是int类型。

假设有两组字符串cs和ct,当csct时,函数返回一个负数;当cs==ct时,函数返回0;当csct时,函数返回一个正数。

即:两个字符串自左向右逐个字符相比(按ascii值大小相比较),直到出现不同的字符或遇’\0’为止。如:”a””b”

,”a””a”

,”computer””compare”

,”comput””comp”

strcmp函数原型为:int

strcmp(const

char

*s1,const

char

*

s2);

C语言这段strcmp代码是什么意思

char a[20], b[20];

strcmp(a,b)是比较ab两个字符串的大小

如果strcmp(a,b)==0,说明ab字符串相等

如果strcmp(a,b)0,说明a字符串大于b字符串,也就是a的字母顺序应该在b后面

—-比如”abcd””aabc”, “bcde””abcd”

如果strcmp(a,b)0,说明a字符串小于b字符串,也就是a的字母顺序应该在b前面

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/287320.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-23 13:07
下一篇 2024-12-23 13:07

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 仓库管理系统代码设计Python

    这篇文章将详细探讨如何设计一个基于Python的仓库管理系统。 一、基本需求 在着手设计之前,我们首先需要确定仓库管理系统的基本需求。 我们可以将需求分为以下几个方面: 1、库存管…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python实现简易心形代码

    在这个文章中,我们将会介绍如何用Python语言编写一个非常简单的代码来生成一个心形图案。我们将会从安装Python开始介绍,逐步深入了解如何实现这一任务。 一、安装Python …

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29

发表回复

登录后才能评论