题解 | #字符串分隔#

字符串分隔

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

1.处理空字符串,通过while(scanf("%s",input)!=EOF)和strcat函数读取无空格的字符串;
2.为了实现不足8位数字输入000的功能,可以定义一个字符串temp=“00000000\0”,使用strncpy函数将8个字符逐个拷贝到temp中,并打印,打印后需要将数组还原。
3.str每拷贝一次,读取该位置起第8位的地址,直到读取到8的最大倍数。
4.若字符串长度非8的倍数,则最后拷贝的是len%8个字符串到temp中。 #include<stdio.h>
#include<string.h>
int main()
{
    char input[100]={0};
    char str[100]={0};
    while(scanf("%s",input)!=EOF)//处理空字符串的方法
    {
        strcat(str,input);
    }
    char temp[9]={'0','0','0','0','0','0','0','0','\0'};
    int len=strlen(str);
    int i=0;
    //字符串长度小于等于8直接输出
    if(len<=8)
    {
            strncpy(temp,str,len);
            printf("%s",temp);
    }
    //字符串长度大于8
    else
    {
        int n=len/8;
        //输出8的倍数部分
        for(i=0;i<n;i++)
        {
            strncpy(temp,str+i*8,8);
            printf("%s\n",temp);
            memset(temp,'0',8);
        }
        //输出除以8的余数部分
        if(len%8!=0)
        {
            strncpy(temp,str+i*8,len%8);
            printf("%s\n",temp);
        }
    }
    return 0;
}

全部评论

相关推荐

fRank1e:吓得我不敢去外包了,但是目前也只有外包这一个实习,我还要继续去吗
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务