题解 | #字符串分隔#

字符串分隔

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

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

/* 单字符读入,长度到8则添加\n,不足8则补0
 */

#define MAX_LEN 120

int main() {
    char *str = NULL;
    int ch = 1;
    unsigned int cl_num = 0;
    unsigned int add = 0;
    int i = 0;

    str = (char*)malloc(MAX_LEN * sizeof(char));
    memset(str, '\0', MAX_LEN);
    while((ch = getchar()) != '\n')
    {
        str[i] = (char)ch;
        i++;
        if((i - cl_num) % 8 == 0)
        {
            str[i] = '\n';
            i++;
            cl_num++;   //对齐添加\n后的字符串
        }
    }
    if((i - cl_num) % 8 != 0)    //最后一个字符串不为8位
    {
        add = (8 - (i - cl_num) % 8) % 8;    //要补充的位数
        for(int j = 0; j < add; j++)
            str[i + j] = '0';
    }

    printf("%s", str);

    free(str);
}

全部评论

相关推荐

04-17 20:54
已编辑
湖南大学 Java
自我感觉答得不好,估计是挂了。但面试官人很好,氛围相对轻松。流程:常规自我介绍,20min项目,10min八股,30min算法,反问。项目:问了一些技术细节,以及改进方向。八股:1、http的默认端口号?(80)2、linux中查看进程监听端口号的命令?(不熟悉linux,答了个netstat&nbsp;-ntlp)3、UDP传输如何解决乱序问题?(没答上来,有个在包中添加序列号,但是忘记了)4、某个端口已经监听了UDP,是否能再监听TCP?(没答上来,答案是可以,面试官说这题很偏,不知道也正常)5、malloc分配的是栈内存还是堆内存?(堆)6、进程和线程的区别?(我答的进程是资源分配的最小单位,线程...
丰川打工祥:T8我觉得应该是:静态内部类是外部类的静态成员,独立于外部类的实例,而非静态内部类依赖于外部类的实例,可以访问外部类的所有成员。比如A是外部类,B是静态内部类,C是A的普通内部类。由于 B 是静态内部类,它属于外部类 A 的静态成员,因此可以直接通过 A.B 来创建静态内部类的实例,不需要先创建 A 的实例。而 C 是非静态内部类,它需要依赖外部类 A 的实例,因此必须先创建 A 的实例,然后才能通过这个实例来创建 C 的对象。所以,不能直接用 A.C 来创建 C 的实例。
腾讯一面1768人在聊 查看14道真题和解析
点赞 评论 收藏
分享
SadnessAlex:跟三十五岁原则一样,人太多给这些***惯坏了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务