题解 | #字符串分隔#
字符串分隔
https://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7
#include <stdio.h>
#include <string.h>
/*
1. gets()读取一个字符串
2. len = strlen(str),0直接return
3. len / 8 = 8位的个数 m
4. len % 8 = 最后一个8位数的实际长度 n
4. for i < m
for j < 8
printf ("%c", str[i*8+j])
printf("\n")
5. n != 0
for i < 8
if i < n
printf("%c", str[m*8+i])
else
printf("0")
printf("\n")
*/
int main() {
char str[200] = {0};
fgets(str, sizeof(str), stdin);
int len = strlen(str) - 1;
if (0 == len)
{
return -1;
}
int m = len / 8;
int n = len % 8;
// printf("len:%d m:%d n:%d\n", len, m, n);
for(int i = 0; i < m; i++)
{
for (int j = 0; j < 8; j++)
{
printf ("%c", str[i * 8 + j]);
}
printf("\n");
}
if (0 != n)
{
for (int i = 0; i < 8; i++)
{
if (i < n) // i是从0开始的,假设只有3位数,那i = 2的时候就已经把前三位输出了
{
printf("%c", str[m * 8 + i]);
}
else
{
printf("0");
}
}
printf("\n");
}
return 0;
}

查看1道真题和解析