#在题解里大佬的基础上,增加了两行输入功能,和一点注释。

字符串分隔

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;
}

全部评论

相关推荐

2024-12-23 06:50
门头沟学院 Java
给点吧求求了:3点发的帖子,害怕😰
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务