如何将绳子放在一起并在绳子之间放东西

问题描述 投票:0回答:1

我需要做这样的事情 Problem

但是,我不能使用 string.h 来做这样的事情。 当用户按下 CTRL+D 时,认为输入已完成。

目标是向文件添加描述(我知道如何将其放入文件中,这不是问题)。

我需要向用户询问描述,他可以做任何他想做的事情,当他完成时(包括放置换行符,我需要用“br /”替换。他可以按 CTRL+D 表示他已经完成了描述.

此后,描述会被我老师制作的网站读取(这就是为什么我需要加上br /)。

我尝试在同一个字符串中执行多个 fget。当然,字符串被 plus 覆盖,我不能在字符串之间放置“br”。

c string char
1个回答
-1
投票

在C中你需要复制字符串

编辑

在阅读了不允许使用

string.h
功能的评论后:

void *mymemcpy(void *restrict d, const void *restrict s, const size_t length)
{
    unsigned char *dc = d;
    const unsigned char *sc = s;

    for(size_t i = 0; i < length; i ++)
    {
        *dc++ = *sc++;
    }
    return d;
}


char *threeStringsTogether(const char *s1, const char *between, const char *s2)
{
    size_t s1Length = strlen(s1);
    size_t bLength = strlen(between);
    size_t s2Length = strlen(s2);
    char *newString = malloc(s1Length + s2Length + bLength + 1);
    if(newString)
    {
        mymemcpy(newString, s1, s1Length);
        mymemcpy(newString + s1Length, between, bLength);
        mymemcpy(newString + s1Length + bLength, s2, s2Length + 1);
    }
    return newString;
}


int main(void)
{
    char *str = threeStringsTogether("test", "</br>", "test2");

    if(str) printf("The new string is: \"%s\"\n", str);
    free(str);
}
© www.soinside.com 2019 - 2024. All rights reserved.