c语言之strcmp函数使用和实现

文章目录

  • 前言
  • 一、strcmp函数使用
  • 二、实现方法


前言

c语言中常用的字符串处理函数strcmp总结。


一、strcmp函数使用

原型

int strcmp ( const char * str1, const char * str2 );

strcmp比较两个字符串的大小,一个字符一个字符比较,按ASCII码比较
规定:
第一个字符串大于第二个字符串,则返回大于0的数字
第一个字符串等于第二个字符串,则返回0
第一个字符串小于第二个字符串,则返回小于0的数字

注意:strcmp函数比较两字符串的大小,和字符串本身长度无关

使用

#include
#include
int main()
{
	char* p1 = "abc";
	char* p2 = "abc";
	char* p3 = "abcd";
	char* p4 = "e";
	printf("----------------------\n");
	printf("           %d\n", strcmp(p1,p2 ));
  	printf("----------------------\n");
	printf("           %d\n", strcmp(p2,p3));  
	printf("           %d\n", strcmp(p3,p2)); 
	printf("----------------------\n");
	printf("           %d\n", strcmp(p3,p4));//ASCII   'a' - 'e' =  97 - 101 = -4
	printf("           %d\n", strcmp(p4,p3)); //ASCII  'a' - 'e' =  101 - 4  =  4
	printf("           %d\n", 'a');
	printf("           %d\n", 'e');

} 
}

执行

$ gcc strcmp.c  -o strcmp
$ ./strcmp
----------------------
           0
----------------------
           -100
           100
----------------------
           -4
           4
           97
           101

二、实现方法

#include<stdio.h>
#include<string.h>
int Strintcmp(const char * str1, const char * str2)
{
    //1、两个不同的字符串比较时,直接 return (*str1-*str2);//返回两字符相减的ASCII码值
	//2、字符串相同时进入while循环,字符串结束符是'\0',添加一个循环的结束条件!(*str1|*str2)=='\0')
	while ((*str1 == *str2)&&(!(*str1|*str2)=='\0')){
		str1++;
		str2++;
	}
  return (*str1-*str2);//返回两字符相减的ASCII码值
}

int main()
{
	char* p1 = "abc";
	char* p2 = "abc";
	char* p3 = "abcd";
	char* p4 = "e";
	printf("----------------------\n");
	printf("           %d\n", Strintcmp(p1,p2 ));
  	printf("----------------------\n");
	printf("           %d\n", Strintcmp(p2,p3));  
	printf("           %d\n", Strintcmp(p3,p2)); 
	printf("----------------------\n");
	printf("           %d\n", Strintcmp(p3,p4));  
	printf("           %d\n", Strintcmp(p4,p3)); 
	printf("           %d\n", 'a');
	printf("           %d\n", 'e');

} 

执行

$ gcc strcmp.c  -o strcmp
$ ./strcmp
----------------------
           0
----------------------
           -100
           100
----------------------
           -4
           4
           97
           101

你可能感兴趣的:(c语言常用处理方法,c语言)