gpt4 book ai didi

在 C 中将字符数组和 const char 指针组合成单个 const char*

转载 作者:行者123 更新时间:2023-11-30 20:20:28 29 4
gpt4 key购买 nike

我有以下代码,在哪里。

s[] - 生成一个字符数组并

longStr - 是一个 cons char*。我想将这 2 个组合成一个 const char* ,这样应该首先添加 s,然后添加 longStr。如下所示:

    const char* combinedStr = ADD s[] and then longStr;

longStr 的大小可以不断变化。因此,静态分配combinedStr不会很好地利用内存。有没有一种方法可以动态地执行此操作,而无需为组合的静态分配大小(也不使用VLA)。

代码

void concatenate(const char* longStr)
{
time_t t = time(NULL);
struct tm timeinfo;
localtime_s(&timeinfo, &t);
char s[100];
strftime(s, sizeof(s), "%c", &timeinfo);

//NOW I WANT TO Combine "s[]" & longStr in such a way that s should be added 1st followed by longStr.

const char* combinedStr = ADD s[] and then longStr;


}

最佳答案

您可以使用mallocstrcpystrcat

类似于:

#include <stdio.h>
#include <time.h>

void concatenate(const char* longStr)
{
time_t t = time(NULL);
struct tm timeinfo;
localtime_r(&t, &timeinfo);
char s[100];
strftime(s, sizeof(s), "%c", &timeinfo);

// Allocate memory and put the string together
const char* p = malloc(strlen(s) + strlen(longStr) + 1); // note: Add 1 for the string termination
strcpy(p, s);
strcat(p, longStr);

printf("%s\n", p);

free(p);
}

int main(void) {
char* p = "Hello world";
concatenate(p);
return 0;
}

关于在 C 中将字符数组和 const char 指针组合成单个 const char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46215639/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com