算法提高 11-1实现strcmp函数
问题描述
自己实现一个比较字符串大小的函数,也即实现strcmp函数。函数:intmyStrcmp(char *s1,char *s2)按照ASCII顺序比较字符串s1与s2。若s1与s2相等返回0,s1>s2返回1,s1
"A"<"B"
"a">"A"
"computer">"compare"
"hello"<"helloworld"
样例输出
数据规模和约定
字符串长度<100。
参考代码
import java.util.Scanner; //实现strcmp函数 public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); String s1=sc.next(); String s2=sc.next(); char a[]=s1.toCharArray(); char b[]=s2.toCharArray(); int num=0; if(a.length<b.length){ for(int i=0;i<a.length;i++){ if(a[i]>b[i]){ System.out.println("-1"); break; }else if(a[i]<b[i]){ System.out.println("1"); break; }else{ num++; } if(num==a.length){System.out.println("-1");} } } if(a.length>b.length){ for(int i=0;i<b.length;i++){ if(a[i]>b[i]){ System.out.println("-1"); break; }else if(a[i]<b[i]){ System.out.println("1"); break; }else{ num++; } if(num==b.length){System.out.println("1");} } } if(a.length==b.length){ for(int i=0;i<a.length;i++){ if(a[i]>b[i]){ System.out.println("-1"); break; }else if(a[i]<b[i]){ System.out.println("1"); break; }else{ num++; } if(num==a.length){System.out.println("0");} } } } } 复制代码
注:此题是C语言,说用什么指针,当时也不懂,用java格式中最笨的方式做出来的,原理还是挺简单的,就是用ASCII码比大小解决的
作者:陈言必行
链接:https://juejin.cn/post/7019642599010992142