|
发表于 2021-6-6 10:51:52
|
显示全部楼层
本楼为最佳答案
- #include <stdio.h>
- #include <string.h>
- char *strrev(char *str) {
- if(!str || !*str) return str;
- char *p1, *p2;
- for(p1 = str, p2 = str + strlen(str) - 1; p2 > p1; ++p1, --p2) {
- char temp = *p1;
- *p1 = *p2;
- *p2 = temp;
- }
- return str;
- }
- int main(void) {
- long num = 0;
- int ch;
- while((ch = getchar()) != '\n') {
- num = num * 10 + (ch - '0');
- }
- const char table[] = "0123456789ABCDEF";
- char buff[1024];
- for(size_t i = 0; i < 1024; ++i) {
- buff[i] = table[num % 16];
- num /= 16;
- if(num == 0) {
- if(++i < 1024) buff[i] = '\0';
- break;
- }
- }
- buff[1023] = '\0';
- puts(strrev(buff));
- return 0;
- }
复制代码 |
|