题解 | #字符串分隔#

字符串分隔

http://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7

暴力解决

#include <stdio.h>
#include <string.h>

int main()
{
    int len;
    int num; // 存储字符串按8为单位的个数
    int rem; // 存储字符串最后剩的余数
    int i;
    char str[100] = {0}; // 接收输入数据
    char temp[9]; // 用来临时存储
    
    while (scanf("%s", str) != EOF) {
        len = strlen(str);
        if (len < 9) {
            for (i = len; i < 8; i++) {
                str[i] = '0';
            }
            str[8] = '\0';
            printf("%s\n", str);
        } else { // 长度大于8有两种情况,有余数和没余数
            num = len / 8;
            rem = len % 8;
            for (i = 0; i < num; i++) { // 先把按8byte为单位的字符串输出
                strncpy(temp,str + 8 * i, 8);
                temp[8] = '\0';
                printf("%s\n", temp);
            }
            if (rem) { // 有余数则对最后字符处理
                strncpy(temp, str + 8 * num, rem);
                for (i = rem; i < 8; i++) {
                    temp[i] = '0';
                }
                temp[8] = '\0';
                printf("%s\n", temp);
            }
        }
    }
    
    return 0;
}
全部评论
strncpy(temp,str + 8 * i, 8);和strncpy(temp, str + 8 * num, rem); 这里面 + 8 * i和+ 8 * num是做什么的,我不明白
点赞 回复 分享
发布于 2023-02-12 23:37 上海
没考虑空格啊
点赞 回复 分享
发布于 2022-06-21 09:46

相关推荐

04-14 20:10
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
5
8
分享

创作者周榜

更多
牛客网
牛客企业服务