hdu 4054
来源:互联网 发布:步进电机驱动程序源码 编辑:程序博客网 时间:2024/05/06 00:37
题意:读入一行字符串,16个字符输出一行内容,按格式输出16个字符的ascii码,不足16个字符补上空格,每行的开头是第k个字符的首地址,输出16进制数,每行最后要输出原字符,大写字母换为小写,小写换为大写。
题解:处理有点麻烦的字符串水题。
#include <stdio.h>#include <string.h>const int N = 5000;char str[N];int main() { while (gets(str)) { int len = strlen(str); for (int i = 0; i < len; i++) { if (i % 16 == 0) { if (i > 0) { for (int j = i - 16; j < i; j++) { if (str[j] >= 'A' && str[j] <= 'Z') printf("%c", str[j] + 32); else if (str[j] >= 'a' && str[j] <= 'z') printf("%c", str[j] - 32); else printf("%c", str[j]); } printf("\n"); } printf("%04x: ", i); } printf("%x", str[i]); if (i & 1) printf(" "); } if (len % 16) { int temp = len % 16; int l = 16 - temp; if (l % 2) l = l * 2 + l / 2 + 1; else l = l * 2 + l / 2; for (int i = 0; i < l; i++) printf(" "); for (int j = len - temp; j < len; j++) { if (str[j] >= 'A' && str[j] <= 'Z') printf("%c", str[j] + 32); else if (str[j] >= 'a' && str[j] <= 'z') printf("%c", str[j] - 32); else printf("%c", str[j]); } printf("\n"); } else { for (int j = len - 16; j < len; j++) { if (str[j] >= 'A' && str[j] <= 'Z') printf("%c", str[j] + 32); else if (str[j] >= 'a' && str[j] <= 'z') printf("%c", str[j] - 32); else printf("%c", str[j]); } printf("\n"); } } return 0;}
0 0
- hdu 4119 && hdu 4082 && hdu 4054
- hdu 4054
- HDU 4054 Hexadecimal View
- hdu 4054 Hexadecimal View
- HDU 4054 Hexadecimal View
- Hdu 4054 Hexadecimal View
- HDU 4054 水
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- 小马哥--高仿华为荣耀3c 4g定制版 展讯芯片s8825拆机主板图与开机界面图 主板标贴S7C
- iOS常用正则表达式
- C++各个容器比较(vector,deque,list,set,map,queue,stack)
- linux 命令行一
- ToStringBuilder介绍
- hdu 4054
- ubuntu vim 安装 javacomplete
- oracle数据库存储管理
- Direct3D基础回顾
- 看见港口价格很快很快
- Java知识整理——反射
- 使用拦截器进行权限的控制
- c和指针_小感悟
- 我的读研计划