1. 程式人生 > >11-1實現strcmp函式

11-1實現strcmp函式

  演算法提高 11-1實現strcmp函式  

時間限制:1.0s   記憶體限制:256.0MB

    

問題描述

  自己實現一個比較字串大小的函式,也即實現strcmp函式。函式:int myStrcmp(char *s1,char *s2) 按照ASCII順序比較字串s1與s2。若s1與s2相等返回0,s1>s2返回1,s1<s2返回-1。具體來說,兩個字串自左向右逐個字元相比(按ASCII值大小相比較),直到出現不同的字元或遇'\0'為止(注意'\0'值為0,小於任意ASCII字元)。如:
  "A"<"B"
  "a">"A"
  "computer">"compare"
  "hello"<"helloworld"

樣例輸出

資料規模和約定

  字串長度<100。

#include <iostream>
using namespace std;

int myStrcmp(const char *s1,const char *s2){
	int i=0;
	while(true){
        //字串結束標誌為‘\0’,ASCII=0
		if(s1[i]==0 && s2[i]==0){
			return 0;
		}else if(s1[i]==0){
			return -1;
		}else if(s2[i]==0){
			return 1;
		}else if(s1[i]==s2[i]){
			i++;
			continue;
		}else if(s1[i]>s2[i]){
			return 1;
		}else if(s1[i]<s2[i]){
			return -1;			
		}		
	}	
}

int main(int argc, char *argv[]) {
	char s1[105],s2[105];
	cin>>s1>>s2;
	cout<<myStrcmp(s1,s2)<<endl;
	return 0;
}