编写一个程序,将两个字符串s1和s2比较,如果s1 > s2,输出一个正数;s1 = s2,输出0,;s1 < s2输出一个负数。不要使用strcmp函数。两个字符串用gets函数读入。输出的正数或者负数的绝对值应是相比较的两个字符串相应字符的ASCII码的差值。例如“A”与“C”相比,由于“A” < "C",应该输出负数,由于“A”与"C"的ASCII嘛差值为2,因此应该输出“-2”。同理:“And”和“Aid”比较,根据第二个字符比较的结果,"n”比"i"大5,因此输出5。
看到这个题目,我们可以想到如果不用strcmp函数,因此就需要我们一次读取一个字符进行比较,如果等于0,可以执行continue操作,进行下一次的循环。如果不等于零,即找到两个字符串的差值,此时就可以break了。根据上面的原理,编写代码如下:
#include <stdio.h> #define N 100 int main(int argc, int *argvp[]) { char str1[N],str2[N]; char c1,c2; int i,result = 0; printf("please input s1 string:"); gets(str1); printf("please input s2 string:"); gets(str2); for (i = 0 ; ((c1 = str1[i]) != '\0') && ((c2 = str2[i]) != '\0') ; i++) { result = c1 - c2; if (0 == result) { continue; } else { break; } } printf("the result is :%d\n",result); system("pause"); return 0; }
|
阅读(9826) | 评论(0) | 转发(0) |