#在题解里大佬的基础上,增加了两行输入功能,和一点注释。
字符串分隔
http://www.nowcoder.com/questionTerminal/d9162298cb5a437aad722fccccaae8a7
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { char str[102] = { 0 }; // 一次输入不多于100个字符,当输入100个字符时,第101个字符为‘\n’ // 第102个字符为‘\0’ int input_num = 0; while (fgets(str,102,stdin) && (input_num<2)) { char dst[8] = { 0 }; char *p = str; int len = strlen(str)-1; // 删去换行符 int n = len % 8; if (str[len] == '\n') // 两次输入后,退出程序 input_num++; for (int i = 0; i < len / 8; i++) { strncpy(dst, p, 8); // 拷贝字符,不超过8个,不足则拷贝空字符,超过则不拷贝 fwrite(dst, 1, 8, stdout); // 用于输出,相当于输出字符串dst memset(dst, 0, sizeof(dst)); // 将数组全部元素赋值0 p += 8; printf("\n"); } if (n != 0) { // 不足8位,补0 strncpy(dst, p, n); for (int i = 0; i < (8 - n); i++) { dst[n + i] = '0'; } fwrite(dst, 1, 8, stdout); printf("\n"); } } system("pause"); return 0; }