ZOJ 3542 Hexadecimal View [2011大连现场赛]
2011-10-03 11:03
288 查看
题意:
分析:
//AC CODE:
附上大牛的代码,转自http://watashi.ws/blog/2102/icpc-2011-dalian-dlut-cont/comment-page-1/#comment-20486
仔细研读,可以学到不少东西!
printf("%04x: ", off);
putchar(isupper(buf[pos]) ? tolower(buf[pos]) : toupper(buf[pos]));
分析:
//AC CODE:
#include<iostream> #include<cmath> #include<algorithm> #include<vector> #include<cstdio> #include<cstdlib> #include<cstring> #include<string> using namespace std; char str[4100]; void print_num(int a) { if(a<16) { printf("000%x: ",a); } else if(a<0x100) { printf("00%x: ",a); } else if(a<0x1000) { printf("0%x: ",a); } else { printf("%x: ",a); } } int main() { while(gets(str)) { int len=strlen(str); int countn=(int)(len/16.0+0.999999); for(int i=0;i<countn;i++) { print_num(16*i); for(int j=i*16;j<(i+1)*16;j++) { if(j<len) { printf("%x",str[j]); } else { printf(" "); } if((j+1)%2==0) printf(" "); } for(int j=i*16;j<(i+1)*16&&j<len;j++) { if(str[j]>='A'&&str[j]<='Z') { printf("%c",str[j]+'a'-'A'); } else if(str[j]>='a'&&str[j]<='z') { printf("%c",str[j]-'a'+'A'); } else printf("%c",str[j]); } printf("\n"); } } return 0; }
附上大牛的代码,转自http://watashi.ws/blog/2102/icpc-2011-dalian-dlut-cont/comment-page-1/#comment-20486
#include <cctype> #include <cstdio> #include <cassert> #include <cstring> int main() { int len; char buf[1 << 20]; while (fgets(buf, sizeof(buf), stdin) != NULL) { len = strlen(buf) - 1; assert(0 < len && len <= 4096); for (int off = 0; off < len; off += 16) { printf("%04x: ", off); for (int pos = off; pos < off + 16; ++pos) { if (pos < len) { printf("%02x", buf[pos]); } else { printf(" "); } if (pos % 2 != 0) { putchar(' '); } } for (int pos = off; pos < off + 16 && pos < len; ++pos) { assert(isprint(buf[pos])); putchar(isupper(buf[pos]) ? tolower(buf[pos]) : toupper(buf[pos])); } putchar('\n'); } } return 0; }
仔细研读,可以学到不少东西!
printf("%04x: ", off);
putchar(isupper(buf[pos]) ? tolower(buf[pos]) : toupper(buf[pos]));
相关文章推荐
- ZOJ 3542 2011大连现场赛D题(简单模拟)
- ZOJ 3542 2011大连现场赛D题(简单模拟)
- 大连赛区现场赛D题 ZOJ 3542 Hexadecimal View
- ZOJ 3542 Hexadecimal View(字符串)
- ZOJ 3547 The Boss on Mars 2011大连现场赛I题 数论
- ZOJ 3543 Number String 【2011大连区域赛】【dp】
- trainging contest#1(2011大连现场赛)I BY bly
- 2011 Asia Dalian Regional Contest Hexadecimal View
- HDU 4059 The Boss on Mars 2011大连现场赛
- The 2011 ACM-ICPC Asia Dalian Regional Contest——D Hexadecimal View
- ZOJ 3545 Rescue the Rabbit AC自动机 + DP (2011大连区域赛G题)
- Hexadecimal View (2011ACM亚洲大连赛区现场赛D题)
- trainging contest#1(2011大连现场赛)C BY bly
- HDU - 4054 Hexadecimal View (2011 Asia Dalian Regional Contest)
- The 2011 ACM-ICPC Asia Dalian Regional Contest-D Hexadecimal View 【模拟】
- zju 3542 Hexadecimal View (大连现场赛水题)
- HDU - 4054 Hexadecimal View (2011 Asia Dalian Regional Contest)
- 套题总结:2011大连现场赛
- zju 3542 Hexadecimal View (大连现场赛水题)
- 2011 ACM/ICPC 大连赛区现场赛题解:Compress the String