题目描述

编写一个C程序,实现以下功能:
用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:
int strcmp(char *p1,char *p2);
设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为0;
 如果s1≠s2,返回它们二者第一个不相同字符的ASCII码差值
 (如“BOY”与“BAD”,第二个字母不相同,“O”与“A”之差为79-65=14);
 如果s1>S2,则输出正值;如s1<s2则输出负值。

思维难点

1.怎么判断字符串是否相等,字符串相等的条件是什么?

2.如何去找到第一个不同的字符,并且返回ascii值?

思路:

首先定义两个数组,目标数组(输入终端的英文句子)要求数组(要求的单词)

1.字符串相等的条件:1).字符串长度相同。2).所有字符字母相同,大小写不同也不行。

怎么去寻找:通过两个指针,指向两个数组的首地址。检索目标数组的所有元素,与要求数组的第一个元素进行比较,如果存在相同元素,要求数组的指针进一,移到下一位。

2.通过1的思路,两个指针,在while循环里面进行判断两个数组是否存在相同的元素。如果没有,根据之前学过ascii值的知识,只要用两个字符相减并返回,再用%d来打印就ok。

答案如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#define MAX 500
/*编写一个C程序,实现以下功能:
用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:
int strcmp(char *p1,char *p2);
设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为0;如果s1≠s2,返回它们二者第一个不相同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不相同,“O”与“A”之差为79-65=14);如果s1>S2,则输出正值;如s1<s2则输出负值。
*/int strcmp(char* p1, char* p2) {int max = strlen(p1) > strlen(p2) ? strlen(p1) : strlen(p2);int min = strlen(p1) + strlen(p2) - max;int p;p = 0;//长度if (strlen(p1) == strlen(p2)){for (int i = 0; i < max; i++) {//这里用max还是min还是strlen都一样//字母的asciiif (p1[p] != p2[p])return (p1[p] - p2[p]);else {p++;}}return 0;}else{while (p != min) {if (p1[p] != p2[p])return p1[p] - p2[p];p++;}}
}
int main() {char str01[MAX], str02[MAX];gets(str01);gets(str02);char tmp = strcmp(str01,str02);printf("%d", tmp);
}

编写一个C程序,实现以下功能:用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp(char *p1,char *p2);设p1指向字符串s相关推荐

  1. 写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为int strcmp(char * p1 ,char * p2); 设p1指向字符串s1, p2指向字符串s2。要求当s1=s2

    写一函数,实现两个字符串的比较.即自己写一个strcmp函数,函数原型为int strcmp(char * p1 ,char * p2); 设p1指向字符串s1, p2指向字符串s2.要求当s1=s2 ...

  2. (C语言)写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2)

    写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2);设p1指向字符串s1,p2指向字符串s ...

  3. 案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程。 首先用文本编辑器写一个C++源程序名为StackFrame.cpp ,代码如下:

    案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程. 首先用文本编辑器写一个C++源程序名为StackFrame.cpp ,代码如下: 1 ...

  4. C语言学习之编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf函数输出这两个字符

    编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf函数输出这两个字符.思考以下问题: (1)变量cl和c2应定义为字符型,整型还是二者皆可? (2)要求输 ...

  5. c语言定义一个strcmp函数,定义一个strcmp函数实现两个字符串比较,函数原型为int strcmp(char * p1,...

    追问: math 追答:1234567891011121314151617181920212223242526272829303132333435363738394041#include #inclu ...

  6. c语言怎么让程序停止3秒,求助!!!!用单片机的定时器T1怎么写一个LED亮2秒灭3秒的程序 C语言...

    求助!!!!用单片机的定时器T1怎么写一个LED亮2秒灭3秒的程序 C语言 关注:120  答案:4  mip版 解决时间 2021-02-05 00:55 提问者習慣邇的習慣 2021-02-04 ...

  7. 一个函数里两个setjmp_C语言中setjmp.h的longjmp()函数

    一个函数里两个setjmp We can call this function as an advance version of goto statement but with more dynami ...

  8. 如何做一个小程序口令红包功能

    在做小程序后端支持的过程中遇到不少有意思的功能,有些比较考你的思维散发及解决问题的实际能力,这里摘录一下记录下来,是为抛砖引玉.如能帮到别人,自然是最好不过了. 先放几张设计图看下大概功能: 大概便是 ...

  9. 如何做一个小程序口令红包功能 1

    在做小程序后端支持的过程中遇到不少有意思的功能,有些比较考你的思维散发及解决问题的实际能力,这里摘录一下记录下来,是为抛砖引玉.如能帮到别人,自然是最好不过了. 先放几张设计图看下大概功能: 大概便是 ...

  10. qt实现程序密钥注册功能,MD5加密+AES加密,并实现一台电脑系统一个密钥

    qt实现了一个给自己软件加密的功能. 原理是: 需要被注册的软件第一次运行的时候,在系统的注册表里面注册一个键值,如下: 这个值作为生成密钥的用户识别号,然后生成密钥文件key.db,把这个key.d ...

最新文章

  1. 大剑无锋之post那么多优点,为什么还用get
  2. 一道有意思的导论问题
  3. php 水平测试,测试您的 PHP 水平的题目_PHP教程
  4. LeetCode 2129. 将标题首字母大写
  5. 迈普路由器访问控制列表配置命令_如何选购企业路由器?选购企业路由器需注意什么...
  6. c语言中休眠的作用,使用C语言让Windows睡眠/休眠
  7. Bootstrap学习笔记--常用标签和类模板
  8. 【STM32】关于BOOT引脚和一键下载电路下载的一些事
  9. java AES加密解密
  10. python生成器_Python生成器
  11. 在原生js中的,table表格,display:block之后,样式混乱
  12. 提取已有的内核配置文件
  13. opencv无获取摄像头视频帧(YUV打开导致失败)
  14. php淘口令,淘口令使用说明
  15. 交叉碳市场和 Web3 以实现再生变革
  16. 【VUE】在vue中使用google地图
  17. pycharm遇坑指南(win32gui)
  18. sqlserver 数据误删除恢复
  19. 基于COLA架构创建运输微服务应用和DDD领域建模
  20. linux如何压缩为gz文件,将一个.gz文件拆分为多个1GB压缩(.gz)文件

热门文章

  1. 《暗时间》-----摘记
  2. Flink ProcessFunction 介绍使用
  3. 实时数仓Hologres首次走进阿里淘特双11
  4. 双11专刊|云原生数据仓库AnalyticDB支撑双11,大幅提升分析实时性和用户体验
  5. 过Serverless技术降低微服务应用资源成本
  6. 给 AI 讲故事,如何教它脑补画面?
  7. 这一团糟的代码,真的是我写的?!
  8. Alios Things的Flash划分规则
  9. SuperEdge正式成为CNCF沙箱项目,腾讯云携手六家厂商在边缘计算领域踏入新篇章
  10. 阿里巴巴宣布架构调整;英伟达放大招!重磅发布 ​TensorRT 7 ,支持超千种计算变换;苹果、谷歌和亚马逊罕见结盟……...