牛客华为机试题库 字符串分隔

题目描述

•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:

连续输入字符串(输入2次,每个字符串长度小于100)

输出描述:

输出到长度为8的新字符串数组

 
 
#include<stdio.h>
#include<string.h>
int main()
{
    char in[101]={0};
    char out[9]={0};
    while(gets(in))   //gets标准读入字符串直到换行符为止  跟cin和scanf在读入字符串时遇到空格停止有区别    
    {
        char *p=in;  char* 表示以该指针为首的字符数组
        while(*p)  //不为空串
        {
            for(int i=0;i<8;i++)
            {
                if(p[i])
                    out[i]=p[i];
                else
                    out[i]='0';  //不够补0 因为是字符串所以补得0也是字符
            }
            printf("%s\n",out);
            p=p+8;
        }
        memset(in,0,110);  //清0  为in数组,前110个字符赋0
    }
}

本题自己想法是给string按照位依次赋值0,但实际上不能这么做。而且string也有专门的函数append为其加0;

同样也熟悉了cin,scanf和gets的区别  以及字符串数组的指针运用 还有memset的运用回顾

猜你喜欢

转载自www.cnblogs.com/libin123/p/12242669.html
今日推荐