基础不扎实!!!
1.得到一个字符的ascll 码值:
char ch;
cin>>ch;
cout<<(int)ch;
2.比较字符串的ascll
思路:
1.从第一个字符开始比较,如果a字符串的第n个字符的ascll码值>b字符串的第n个字符的ascll码值,则a>b;反之a<b,若相等继续比较下一位;
2.若a和b长度相等且每个字符都相同,则a=b;
3.若a是b的前一部分,例如abcd和abcdef,则a<b;
然后,我觉得思路没毛病,,,程序一如既往地不对
#include<stdio.h>
#include<string.h>
int min(int a,int b){
return a>b?b:a;
}
char str1[100],str2[100];
int main(void){
int len1,len2,i,flag=0;
scanf("%s",str1);
scanf("%s",str2);
len1=strlen(str1);
len2=strlen(str2);
for(i=0;i<min(len1,len2);){
if((int)str1[i]>(int)str2[i]){
flag=1;
break; //判断出来以后要跳出循环
}
else if((int)str1[i]<(int)str2[i]){
flag=-1;
break;
}
else if((int)str1[i]==(int)str2[i])
i++;
}
//注意此处有三种情况,len1<len2,len1>len2,还有相等,不过相等可以不写;
if((i==min(len1,len2))&&(len1<len2)) //i=min(,),不是min-1
flag=-1;
else if((i==min(len1,len2))&&(len1>len2))
flag=1;
if(flag==1)
printf("str1>str2");
else if(flag==-1)
printf("str1<str2");
else
printf("str1=sre2");
return 0;
}