首页 > 代码库 > 大小写互换-"数字字符串"转换成数字
大小写互换-"数字字符串"转换成数字
今天穿着hacker浑浊马甲在百度编程课堂实训习题中发现了这个很简单的问题,就做了下。
为了考虑输入的是否是数字,结果写好后竟然超时了。
不过里面用到的将字符串装换成数字的方法,感觉是个收获,因此在此做下笔记。
大小写互换时间限制:1000 ms | 内存限制:65535 KB难度:0描述现在给出了一个只包含大小写字母的字符串,不含空格和换行,要求把其中的大写换成小写,小写换成大写,然后输出互换后的字符串。输入第一行只有一个整数m(m<=10),表示测试数据组数。
接下来的m行,每行有一个字符串(长度不超过100)。输出输出互换后的字符串,每组输出占一行。样例输入2AcmACCEPTED
样例输出aCMaccepted
超时解题报告:
#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){ char *n,m,s[27]; int a,i,len; scanf("%s",&m); n=&m; a=atoi(n); if(a)//输入的是数字 { while(a--) { scanf("%s",s); len=strlen(s); for(i=0;i<len;i++) { if(s[i]>=65&&s[i]<=90)//大写时候 { printf("%c",s[i]+32); } else if(s[i]>=97&&s[i]<=122)//小写时候 printf("%c",s[i]-32); else printf("\nerror!\n"); } printf("\n"); } } else //输入的不是数字 { printf("data error!\n "); } return 0;}
程序截图:
如果我按照一般思路来这样写,虽然结果不超时但是感觉不够严谨诶。
#include<stdio.h>#include<string.h>int main(){ int m,i,len; char s[101]; scanf("%d",&m); while(m--) { scanf("%s",s); len=strlen(s); for(i=0;i<len;i++) { if(s[i]>=65&&s[i]<=90)//大写时候 { printf("%c",s[i]+32); } else if(s[i]>=97&&s[i]<=122)//小写时候 printf("%c",s[i]-32); else printf("\nerror!\n"); } printf("\n"); } return 0;}
程序截图:
大小写互换-"数字字符串"转换成数字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。