C语言-写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为 int strcmp(char *pl,char *p2);

题目要求:

17.写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为

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

设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0;若s1≠s2,返回它们二者第1个不同字符的 ASCI1码差值(如"BOY"与"BAD",第2个字母不同,0与A之差为79-65=14)。如果s1>s2,则输出正值;如果s1<s2,则输出负值。

具体程序:

c 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
	int strcmp(char* p1, char* p2);
	char p1[100];
	char p2[100];
	printf("请输入两个字符串:\n");
	gets(p1);
	gets(p2);
	int result=strcmp(p1, p2);
	if (result == 0)
	{
		printf("字符串相同");
	}
	else
	{
		printf("%d", result);
	}
	return 0;
}
int strcmp(char* p1, char* p2)
{
	int i, j,flag = 1;
	for (i = 0; i < strlen(p1); i++)
	{
		if (*(p1 + i) - *(p2 + i) == 0)continue;
		else
		{
			flag = 0;
			return(*(p1 + i) - *(p2 + i));
		}
	}
	if (flag == 1)return 0;
}

运行结果:


相关推荐
赛恩斯3 分钟前
kotlin 为什么可以在没有kotlin 环境的安卓系统上运行的
android·开发语言·kotlin
steem_ding4 分钟前
net.core 调优指南
开发语言·php
龙门吹雪39 分钟前
GO 语言处理多个布尔选项的实现方案
开发语言·后端·golang·布尔选项·标识位
lkbhua莱克瓦241 小时前
进阶-InnoDB引擎-后台线程
开发语言·mysql·innodb
源代码•宸1 小时前
Golang原理剖析(map面试与分析)
开发语言·后端·算法·面试·职场和发展·golang·map
黎雁·泠崖1 小时前
Java数组入门:定义+静态/动态初始化全解析(隐式转换+案例+避坑指南)
java·开发语言·python
m0_748252381 小时前
JavaScript 基本语法
开发语言·javascript·ecmascript
froginwe111 小时前
传输对象模式(Object Transfer Pattern)
开发语言
qq_406176141 小时前
深入理解 JavaScript 闭包:从原理到实战避坑
开发语言·前端·javascript