关于strcmp()的实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

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

int main()
{
    char s1[20],s2[20];
    int re;
    gets(s1);
    gets(s2);
    re=cmp(s1,s2);
    printf("%d\n",re);

    return 0;
}

int cmp(char *p1,char *p2)
{
    while(*p1==*p2)                 //如果有相同的字符,则要进行下一个字符比较;
    {
        if(*p1==‘\0‘)              //由于*p1==*p2,这条语句是判定*p1与*p2所指字符是不是\0,也就是结束符;
            return 0;
        p1++;
        p2++;

    }
    return (*p1-*p2);
}
时间: 2024-10-05 23:22:25

关于strcmp()的实现的相关文章

C语言::模拟实现strcmp函数

题目要求 编写一个C语言程序模拟实现strcmp函数. (我们依然先模拟实现strcmp函数,然后再对照string.h库中strcmp函数的实现,对比与大师之间的差距.) 算法分析 通过上一篇文章:C语言::strcmp函数功能.原型.用法及实例我们获得了strcmp函数的如下信息: strcmp原型:int strcmp( const char *s1, const char *s2 ); strcmp功能:将两个字符串自左向右逐个字符进行相比(根据ASCII值大小),直到出现不同的字符或遇

算法笔记_084:蓝桥杯练习 11-1实现strcmp函数(Java)

目录 1 问题描述 2 解决方案   1 问题描述 问题描述 自己实现一个比较字符串大小的函数,也即实现strcmp函数.函数:int myStrcmp(char *s1,char *s2) 按照ASCII顺序比较字符串s1与s2.若s1与s2相等返回0,s1>s2返回1,s1<s2返回-1.具体来说,两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止(注意'\0'值为0,小于任意ASCII字符).如: "A"<"

strlen(); strcpy(); strcat(); strcmp() ---笔记

指针小知识点: int a =10; int *p=&a; int *q=p;        //p中保存的是a的地址 int *q=p;       //将p的值赋给q 作用是让q也指向a strlen( ); 求字符串的长度 strcpy( ); 复制字符串 strcat( ); 连接字符串 strcmp( ); 字符串大小的比较 1 typedef unsigned int size_t 2 3 size_t my_strlen (const char *str) // strlen()

实现strlen()函数,strcmp()函数 const知识点

1.strlen()函数的实现: #include<stdio.h> int strLen(char *str); int strLen(char *str){     int i = 0;          while(*str){         str++;         i++;     }          return i; } void main(void){     char *str = "abcdefg";     int length;       

GNU LIBC源码学习之strcmp

比较两个字符串 我的代码块 #include <string.h> int my_strcmp(const char* s1,const char * s2) { if((s1==NULL)||(s2==NULL)) return 0; while(1) { if((*s1=='\0')||(*s2=='\0')) break; if(*s1>*s2) return 1; if(*s1<*s2) return -1; s1++; s2++; } //if(*s1==*s2=='\0

PHP strcmp,strnatcmp,strncmp函数的区别

字符串比较说明当s1<s2时,返回为负数当s1=s2时,返回值= 0当s1>s2时,返回正数 1 <?php 2 $str1 = 'str100'; 3 $str2 = 'str20'; 4 echo strcmp($str1, $str2)."<br>"; 5 //输出-1 6 echo strnatcmp($str1, $str2)."<br>"; 7 //输出1 8 echo strncmp($str1, $str2,

教教大家一些strcpy,strcmp,strcat,strlen函数的写法

VC源码: strcmp函数的写法: #include<stdio.h> #include<string.h> int strcmp1(char* a, char* b) { for(;*a==*b;a++,b++) if(*a!='\0') return 0; return *a - *b; } main() {  int l; char a[10]={"db"}; char b[10]={"cb"}; l=strcmp1(a,b); pr

strcpy,strncpy,strcmp函数

void mystrcpy(char *dst,const char * src)//当dst的内存长度不够时将会产生溢出 { if (dst==NULL||src==NULL) { exit(0); } while(*src!='\0') *dst++=*src++; *dst='\0'; } int main() { char src[]="hello world"; char dst[]="zzzzzz"; strcpy(dst,src);//错误 发生越界

uva 11732 - strcmp() Anyone?(字典树)

题目链接:uva 11732 - strcmp() Anyone? 题目大意:给定n个串,然后两两之间比较,问说总共要比较多少次. 解题思路:字典树,建立出字典树,然后根据字典树的性质在节点记录有多少个字符串包含该节点.因为节点的个数比较多,所以用左孩子右兄弟的方法建立字典树. #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long

实现strcmp很简单的思维

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void strcom(char *str1 , char *str2,int *num) { int a = 0; int count = 0; //关键在这里 用指针进行循环判断 while (*str1&&*str2) { str1++; str2++; if ((a=*str1 - *str2) != 0) { *num