Strcmp函数实验报告(大学生)

简介: Strcmp函数实验报告(大学生)

一、实验目的


根据s按照字典顺序小于、等于或大于t的结果分别返回负整数、0或正整数


二、实验内容


通过一系列的处理达成实验目的


三、实验环境


基于macOS Big Sur版本11.1的Xcode编译器

MacBook Pro (16-inch, 2019)

处理器2.6GHz六核Intel Core i7

内存16GB 2667MHz DDR4

图形卡Intel UHD Graphics 630 1536 MB


四、操作方法和实验步骤


[1]思考是否需要调用特殊函数库

[2]构建子函数

[3]构建主函数

[4]调试程序


五、程序具体实现

#include<stdio.h>
#include<string.h>    //包含strcmp函数的头文件
int main(void)
{
    //定义后使用
    char *a="app";
    char *b="APP";
    char *c="App";
    printf("%d\t%d\n",strcmp(a,b),strcmp(b,a));
    //注意strcmp函数返回int类型,不是字符串或者字符类型,转换字符使用%d
    //直接用字符串进行比较
    printf("%d\n",strcmp("app","App"));
    printf("%d\n",strcmp("App","app"));
    printf("%d\n",strcmp("app","app"));
    return 0;
}
//strcmp函数具体解释,因为前文使用了包含strcmp的函数库string.h,所以不需要重复定义,防止出现类型错误的提示
/*
int strcmp(char *s, char *t) {
for ( ; *s == *t; s++, t++)
if (*s == '\0')
return 0; return *s - *t;
}
*/


六、测试结果及讨论


image.png


strcmp(s1,s2)功能:比较字符串s1和s2,两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止。

当s1<s2时,返回为负数;当s1==s2时,返回值= 0;当s1>s2时,返回正数。

为什么有的strcmp函数返回的是1、0、-1,而有的返回的是ascii码之差呢?

回复:估计和具体的编译器有关毕竟c只是定义了一种基本的规则.


七、实验心得


strcmp是 string compare的缩写,即“字符串比较”。他的原型是:

#include<string.h>

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

功能是比较 s1和s2所指向的字符数组中的字符串,返回一个int型值。s1和s2可以是字符数组名或者字符指针变量名。


相关文章
|
7月前
|
存储 C语言
【绝绝子】C语言字符串拷贝,小白必看的科普教程!
【绝绝子】C语言字符串拷贝,小白必看的科普教程!
|
算法 C语言
算法竞赛入门【码蹄集新手村600题】(MT1100-1120)C语言()二
算法竞赛入门【码蹄集新手村600题】(MT1100-1120)C语言()二
102 0
|
5月前
7-3 sdut-C语言实验-活动选择问题(1)
7-3 sdut-C语言实验-活动选择问题(1)
22 3
|
5月前
|
存储 人工智能 算法
7-1 sdut-C语言实验-活动选择
7-1 sdut-C语言实验-活动选择
25 1
|
5月前
7-9 sdut-C语言实验-免费馅饼
7-9 sdut-C语言实验-免费馅饼
28 1
|
5月前
7-3 sdut-C语言实验-活动选择
7-3 sdut-C语言实验-活动选择
24 0
|
7月前
|
存储 人工智能 搜索推荐
【C语言进阶】 假期测评①
【C语言进阶】 假期测评①
59 2
|
7月前
|
存储 安全 BI
【C语言进阶】假期测评②
【C语言进阶】假期测评②
67 1
|
7月前
|
存储 测试技术 C语言
【C语言进阶】 假期测评③
【C语言进阶】 假期测评③
69 1
|
7月前
|
编译器 C语言
C语言笔试训练【第三天】
C语言笔试训练【第三天】