字符串分隔

博客内容讲述了如何使用C语言实现将输入的字符串按每行8个字符进行打印,不足8个字符则补0,超过8个字符会在下一行继续打印,直至所有字符打印完毕。代码中通过双重循环实现这一功能,着重于字符串长度的判断和字符填充。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这道题刚开始想的是 分为三步 一是如果长度=8,那就直接打印字符串,如果长度<8,那就再字符串后面追加数字0,如果长度>8,那就先打印长度为8的字符,然后换行在打印剩下的字符,在补0,但是这种做法我还是没有实现出来而且似乎也太麻烦。 

接下来是我看别人的思路的

首先我们打印的每一行都是长度为8的字符串,所以我们没打印一行就要换行,看是否字符串长度大于8,如果长度大于8,还要在打印一行,这一行打印字符或者0。那我们仔细想一想什么时候打印0,什么时候打印字符呢,首先我们打印的字符长度肯定是等于字符长度,然后剩下的就补0.

#include<stdio.h>
#include<string.h>
int main()
{
    char str[100];
    while(scanf("%s",str)!=EOF) {
        int len =strlen(str);
        int i=0,j=0;
        for(i=0;i<len;i+=8)//如果字符串超过长度8,那就需要在打印一行
        {
            for(j=0;j<8;j++)//一行要打印8个
            {
                if(j+i<len)//如果长度小于=8那就是打印第一行,超过8打印第二行,此时下一行还是从下标0开始
                {//因为字符只有长度个,所以我们打印字符必须要等于长度个,剩余的都补0
                    printf("%c",str[i+j]);
                }
                else {
                    printf("%c",'0');//剩余的补0
                }
            }
            printf("\n");//每次等于长度8就换行
        }
    }
    return 0;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值