解题思路:
方法一,串长不等,直接输出类别为1;再用字符串比较函数strcmp,若两串相等就输出类别为2,若不等,就将两串内的字符改变成小写字母,再用strcmp比较,若相等,就输出类别为3,若仍然不等,类别为4。
方法二,当串长相等,先设置类别为2,假设两串相等,在随后搜寻串内字符过程中,若发现对应字符不等,再假设当大小写无关时,两串相等,设置类别为3,但是随后判断两串中对应字符的距离:若不等于32,两串显然不等,设置类别为4,并停止搜寻随后的字符。
注意事项:
用gets(a)、gets(b)无法正常获取输入,只能改用scanf("%s%s",&a,&b)。(这里a,b是两个之间可以不换行的字符串)
参考代码:
方法一
#include<stdio.h> #include<ctype.h> #include<string.h> int main(){ char a[11],b[11]; int la,lb,i; scanf("%s%s",a,b); la=strlen(a); lb=strlen(b); if(la!=lb) printf("1\n");//串长不等 else{ if(!strcmp(a,b)) printf("2\n");//两串相等 else{ for(i=0;i<la;i++){ a[i]=tolower(a[i]); b[i]=tolower(b[i]); }//串内字符转换成小写 if(!strcmp(a,b)) printf("3\n");//小写串相等 else printf("4\n");//两串不等 } } return 0; }
方法二
#include<stdio.h> #include<string.h> #include<stdlib.h> int main(){ int la,lb,i,f; char a[11],b[11]; scanf("%s%s",a,b); la=strlen(a); lb=strlen(b); if(la!=lb) printf("1");//串长不等 else{//假设两串相等 for(f=2,i=0;i<la;i++){ if(a[i]!=b[i]){//若对应字符不等 f=3;//假设当大小写无关时两串相等 if(32!=abs(a[i]-b[i])){//若对应两字符距离不等于32 f=4;//两串一定不等 break; } } } printf("%d",f); } return 0; }
0.0分
21 人评分
#include<stdio.h> #include<string.h> int main(){ char a[11],b[11]; int la,lb,i; scanf("%s%s",a,b); la=strlen(a); lb=strlen(b); if(la!=lb) printf("1\n");//串长不等 else{ if(!strcmp(a,b)) printf("2\n");//两串相等 else{ if(!strcmp(strlwr(a),strlwr(b))) printf("3\n");//小写串相等 else printf("4\n");//两串不等 } } return 0; } 自己测试没有问题,为什么提交就编译错误呢?
#include <stdio.h> #include <string.h> #include <stdlib.h> main() { char a[100],b[100]; int m,n; scanf("%s",&a); scanf("%s",&b); m=strlen(a); n=strlen(b); if(m!=n) printf("1\n"); else { if(strcmp(a,b)==0) printf("2\n"); else { tolower(a); tolower(b); if(strcmp(a,b)==0) printf("3\n"); else printf("4\n"); } } } 显示错误60%,那边出错了
难免 2023-02-17 01:00:34 |
把头文件<stdlib.h>换成<ctype.h>
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:524 |
母牛的故事 (C语言代码)浏览:1409 |
C二级辅导-计负均正 (C语言代码)浏览:556 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:668 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:1158 |
C语言训练-自由落体问题 (C语言代码)浏览:1775 |
C语言训练-计算1977!* (C++代码)浏览:907 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:287 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:1114 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1215 |
tcc 2022-11-07 15:00:43 |
strlwr是非标准函数,所以应该不会通过,建议换成tolower
难免 2023-02-17 00:57:14 |
把strlwr换成tolower,再添加头文件#include <ctype.h>