用函数实现对两个字符串str1和str2的比较:strcmp (str1,str2)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用函数实现对两个字符串str1和str2的比较:strcmp (str1,str2)相关的知识,希望对你有一定的参考价值。

本人新手,尽量用比较简单的语句,谢谢了
用函数实现,不能直接用strcmp (str1,str2)

这个函数是 字符串内字符自左向右逐个比较(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
当str1<str2时,返回值<0
当str1=str2时,返回值=0
当str1>str2时,返回值>0

程序如下:
int strcmp(char * str1,char * str2)

int i=0,temp=0,ans=0;

while((str1[i]!='\0')&&(str2[i]!='\0'))

temp=str1[i]-str2[i];
if(temp==0)

i++;
continue;

else

ans=temp;
break;


return ans;
参考技术A c语言呀?很多年不用了,但给你个提示
1、len分别测2个字符串的长度,如果长度不等,必然不同
2、如果长度相同,for循环,逐位比较,如果不同,break
3、全部相同,即2字符串相同
参考技术B if(strcmp (str1,str2)==0)则两个字符串相等,
else if(strcmp (str1,str2)>0)则字符串str1大于字符串str2
else if(strcmp (str1,str2)<0)则字符串str1小于字符串str2
参考技术C //---------------------------------------------------------------------------

#include <stdio.h>
int strcmp(const char *a,const char *b)

int i ;
for (i = 0; a[i]&&b[i]; i++)
if (a[i]!=b[i]) break;

return a[i]-b[i];

int main(void)

char a[]="abc";
char b[]="abd";
printf("%d",strcmp(a,b));
return 0;

//---------------------------------------------------------------------------

C#中String的静态方法Compare(str1,str2)比较字符串大小

C#中String的静态方法Compare(str1,str2)比较字符串大小是按什么规则进行比较的,如字符串"a"和"A",结果是"a"<"A",它们是按什么进行比较的?

默认使用的排序准则是CurrentCulture。这是一个对程序员来说比较奇怪的顺序,但它代表的是自然语言的顺序,而且结果是和当前系统的区域和语言选项设置相关的。对字母顺序来说,在大多数culture中,顺序大致是aAbBcC...
实验一下Compare("A","b"), Compare("b","B")就知道了
使用带有排序选项的重载并指定Ordinal,可以获得和C、C++之类的排序函数相同的结果。它实际上是用Unicode字符的编码来进行排序。
Compare("a","A",StringComparison.Ordinal)返回32,即"a">"A"。
Compare("a","B",StringComparison.Ordinal)返回31,即"a">"B"。
这对于程序员来说大约是比较熟悉的结果。
参考技术A 字符串占用的长度 单独字符按AscII码 参考技术B 按照asc码的大小A在小写的后面,顺序是先小写到w,再大写的W 参考技术C a-zA-Z 参考技术D compareTo方法是将两个字符串进行每个字符的Ascii码比较,发现不同时返回str1相对位置减去str2相对位置的字符的值,照你的题目,两个字符串的第一处不同出现在第一位,也就是g和G,g的ascii码为103,G的ascii码为71,所以,返回值为103-71=32,如果你用str2.compareTo(str1),则返回的是-32
第5个回答  2011-08-26 import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Test
public static void main(String[] args) throws IOException
Scanner in = new Scanner(System.in);
String str1 = in.next();
String str2 = in.next();
String max = str1;
if (str1.length() < str2.length())
max = str2;
else if (str1.length() > str2.length())
max = str1;
else if (str1.compareTo(str2) < 0)
max = str2;

System.out.println(max);
FileWriter fw = new FileWriter("hello.txt");
fw.write(max + "\n");
fw.close();


以上是关于用函数实现对两个字符串str1和str2的比较:strcmp (str1,str2)的主要内容,如果未能解决你的问题,请参考以下文章

求教,c语言 写一个函数,实现两个字符串的比较。即自己写一个strcmp函数

c++编程中怎样用strncmp函数计算两个字符串的数目,并比较大小。

C#中String的静态方法Compare(str1,str2)比较字符串大小

字符串比较函数strcmp是怎样比较出两个字符串的大小的?

C语言函数strcmp()(比较两个字符串)

Problem A: 自定义函数strcomp(),实现两个字符串的比较