/* 1. 首先,处理特殊情况:长度小于8的情况 2. 其次,处理常见的情况:长度大于等于8的情况 */ #include <stdio.h> #include <string.h> int main() { int i = 0, k = 0; char buf[1000] = {0}; if(fgets(buf, sizeof(buf), stdin) == NULL) { return -1; } int len = strlen(buf)-1; //处理特殊情况:长度小于8的情况 if(len < 8) { for(i = 0; i<len; i++) { printf("%c", buf[i]); } for(i=0; i<(8-len); i++) { printf("%d", 0); } } else { //长度大于或等于8的情况 for(i = 0; i < len; i++) { printf("%c", buf[i]); k = (i+1) % 8; if(k == 0) { printf("\n"); } } //最后一行补0 int remainder = len % 8; if(remainder != 0){ for(i = 0; i < (8-remainder); i++) { printf("%d", 0); } } } return 0; }