#include <stdio.h>
int strnumcmp(char str1[], char str2[]){
int n=0;
int t1=0;
int t2=0;
while( *str1 && !(n=(*str1)-(*str2)) ){
str1++;
str2++;
}
while( (*str1)<='9' && (*str1)>='0' ){
t1=t1*10+(*str1-0x30);
str1++;
}
while( (*str2)<='9' && (*str2)>='0' ){
t2=t2*10+(*str2-0x30);
str2++;
n=t1-t2;
}
return n;
}
void main(){
char a[]="abc2";
char b[]="abc100";
if( strnumcmp(a,b)>0 ){
printf("%s>%s\n",a,b);
}else if( strnumcmp(a,b)==0 ){
printf("%s=%s\n",a,b);
}else{
printf("%s<%s\n",a,b);
}
}
这是一道笔试题目:编写 strnumcmp 函数,"abc100">"abc2",其他功能同strcmp函数。
字符串比较函数实现
本文介绍了一个特殊的字符串比较函数strnumcmp的实现方法,该函数能够正确处理包含数字的字符串比较,如abc100>abc2的情况,并详细展示了其工作原理及调用示例。
2505

被折叠的 条评论
为什么被折叠?



