一、函数基本用法 定义: intstrcmp(constchar*str1,constchar*str2); 第一个参数为第一个字符串的地址; 第二个参数为第二个字符串的地址; 作用:比较两个字符串是否相等 •标准规定: •第
一、函数基本用法
定义:
int strcmp ( const char * str1, const char * str2);
第一个参数为第一个字符串的地址;
第二个参数为第二个字符串的地址;
作用:比较两个字符串是否相等
•标准规定:
•第一个字符串大于第二个字符串,则返回大于0的数字
•第一个字符串等于第二个字符串,则返回0
•第一个字符串小于第二个字符串,则返回小于0的数字
那么如何判断两个字符串?
例:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[20] = { "zhangsan" };
char arr2[20] = { "zhangsanfeng" };
char arr3[20] = { "zhangsan" };
int ret1 = strcmp(arr1, arr2);//字符串1小于字符串2,返回负值
int ret2 = strcmp(arr1, arr3);//字符串1和字符串3相等,返回0
printf("arr1和arr2:%d\n", ret1);
printf("arr1和arr3:%d\n", ret2);
}
运行结果:
所以,通过strcmp函数即可比较两个字符串是否相等。
2.代码模拟实现
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_strcmp(const char* str1, const char* str2)
{
assert(str1 && str2);
while (*str1 == *str2)
{
if (*str1 == '\0')
return 0;//相等
str1++;
str2++;
}
if (*str1 > *str2)
return 1;//为正值即可
else
return -1;//为负值即可
}
int main()
{
char arr1[20] = { "zhangsan" };
char arr2[20] = { "zhangsanfeng" };
char arr3[20] = { "zhangsan" };
int ret1 = my_strcmp(arr1, arr2);//字符串1小于字符串2,返回负值
int ret2 = my_strcmp(arr1, arr3);//字符串1和字符串3相等,返回0
printf("arr1和arr2:%d\n", ret1);
printf("arr1和arr3:%d\n", ret2);
}
运行结果:
以上就是strcmp函数的基本用法,欢迎指正~