但是,我不能使用 string.h 来做这样的事情。 当用户按下 CTRL+D 时,认为输入已完成。
目标是向文件添加描述(我知道如何将其放入文件中,这不是问题)。
我需要向用户询问描述,他可以做任何他想做的事情,当他完成时(包括放置换行符,我需要用“br /”替换。他可以按 CTRL+D 表示他已经完成了描述.
此后,描述会被我老师制作的网站读取(这就是为什么我需要加上br /)。
我尝试在同一个字符串中执行多个 fget。当然,字符串被 plus 覆盖,我不能在字符串之间放置“br”。
在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);
}