习题 8.17 写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为int strcmp(char *p1, char *p2);
实现 函数 一个 字符串 自己 比较 两个 习题
2023-09-14 09:06:56 时间
C程序设计(第四版) 谭浩强 习题8.17 个人设计
习题 8.17 写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为int strcmp(char *p1, char *p2); 设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0;若s1!=s2,返回它们二者第1个不同字符的ASCII码差值(如"BOY"与"BAD",第2个字母不同,"O"与"A"之差为79-65=14)。如果s1>s2,则输出正值;如果s1<s2,则输出负值。
代码块:
方法1:
#include <stdio.h>
#include <stdlib.h>
int strcmp(char *p1, char *p2); //定义strcmp函数
int main()
{
char s1[20], s2[20];
printf("Please enter s1 string: "); //输入字符串s1
gets(s1);
printf("Please enter s2 string: "); //输入字符串s2
gets(s2);
printf("Result: %d\n", strcmp(s1, s2)); //输出返回值
system("pause");
return 0;
}
//strcmp函数
int strcmp(char *p1, char *p2)
{
int r, t;
for (; *p1==*p2&&(*p1!='\0'||*p2!='\0'); p1++, p2++);
r=*p1-*p2;
r==0 ? t=0 : t=*p1-*p2;
return t;
}
方法2:(利用动态内存分配)
#include <stdio.h>
#include <stdlib.h>
void input(char *s1, char *s2);
int strcmp(char *p1, char *p2);
int main()
{
char *str1, *str2;
str1=(char *)malloc(30*sizeof(char));
str2=(char *)malloc(30*sizeof(char));
input(str1, str2);
printf("Value=%d\n", strcmp(str1, str2));
free(str1);
free(str2);
system("pause");
return 0;
}
void input(char *s1, char *s2)
{
printf("Please enter S1: ");
gets(s1);
printf("Please enter S2: ");
gets(s2);
}
int strcmp(char *p1, char *p2)
{
char *p, *q;
int value;
for (p=p1, q=p2; *p!='\0'||*q!='\0'; p++, q++)
if (*p!=*q){
value=*p-*q;
break;
}
if (p==q) value=0;
return value;
}
相关文章
- js 实现层序遍历
- C++ – 实现strstr函数
- 编写一个函数实现将一个字符串的前三个字母移动到最后,输出移动后的字符串。
- ntp服务器协议,NTP协议介绍及实现方案(服务器端和客户端).doc[通俗易懂]
- 字符串函数、字符函数、内存函数的使用及其模拟实现
- Go语言实现二分查找算法
- 优化MySQL数据库存储优化:实现高效快速存储(mysql数据库存储)
- MySQL中的日期转换函数实现(mysql的日期转换函数)
- Oracle月末函数实现最终日期记录(oracle月末函数)
- 的应用分发Linux下应用分发:轻松实现下载一站式服务(linux下下载)
- 使用Oracle编码函数实现安全数据保护(oracle编码函数)
- MySQL双机集群:实现高可用性(mysql双机集群)
- 【MySQL 集群复制实现高可用及数据安全】(mysql集群复制)
- MySQL实现分布式中间件技术的研究(mysql 分布式中间件)
- Oracle实现月初函数简单操作轻松取值(oracle 写月初函数)
- 探索MySQL的上一个函数如何实现高效的查询操作(mysql 上一个函数)
- 利用Oracle SUB函数实现字符串截取(oracle sub函数)
- Oracle实现数据分析的NTILE函数(oracle ntile)
- Oracle F函数实现高效数据处理(oracle f 函数)
- asp下正则实现URL自动链接的一个函数
- asp实现检测字符串是否为纯字母和数字组合的函数
- 一个用js实现过滤重复字符的函数
- javascript实现的一个自定义长度的文本自动换行的函数。
- ReplaceTrim函数之asp实现过滤掉字符中所有的tab和回车和换行的代码
- ASP中DateDiff函数详解主要实现两日期加减操作
- php下实现一个阿拉伯数字转中文数字的函数
- jQuery点击后一组图片左右滑动的实现代码
- delphi设置开机自动启动函数具体实现
- jQuery教程$()包装函数来实现数组元素分页效果
- 多种方法实现当jsp页面完全加载完成后执行一个js函数
- String.prototype实现的一些javascript函数介绍
- 使用jquery实现IE下按backspace相当于返回操作
- JavaScript实现的一个日期格式化函数分享
- C++实现的一个可以写递归lambda的Y函数
- 一个字符串反转函数可实现字符串倒序