gpt4 book ai didi

c++ - 在 C++ 中连接两个 char* 的函数

转载 作者:太空狗 更新时间:2023-10-29 23:46:52 24 4
gpt4 key购买 nike

首先,我是一名 C# 程序员,所以我对 C++ 的应用知识相当有限。大学时带回来的,10年没碰了,比较简单的东西请见谅。

我正在尝试制作一个我可以在 C# 中使用的 DLL,它实现了 libwpd 库。

我已经设法创建了一个 DLL,它导出了 2 个我可以通过 P/Invoke 访问的函数。第一个返回一个常量整数(由 visual studio 作为示例生成),第二个返回一个字符串。

如果我从函数返回一个常量字符串,它会成功传递给 C#,我可以在另一端读取它,所以我知道数据正在传回。

我遇到的问题是 libwpd。我不得不修改他们的 TextDocumentGenerator.cpp 文件以将信息添加到 char* 而不是使用他们使用的 printf,以便我以后可以访问它。

我已将变量定义添加到头文件的公共(public)部分,以便我可以从调用代码中读取它。

现在,我正在尝试编写一个函数,允许我将 libwpd 提供的 char* 添加到外部 char*。

我想出了这个:

char* addString(const char* addThis, char* toThis)
{
char* copier = (char*)malloc(strlen(toThis) + 1 + 1);
strcpy(copier, toThis);
strcpy(copier, "1");

toThis = (char*)malloc(strlen(copier) + 1);
strcpy(toThis, copier);

return copier;
}

但是当我传回信息时,我得到一个空字符串。

我通过调用 totalFile = addString("\n", totalFile);

来调用该函数

(我意识到它应该只在技术上重复地向字符串添加“1”,但它甚至没有这样做)

如果我将复印机线路的 strcpy 更改为 strcat,它会锁定。

我不知道如何用 C++ 创建程序,所以我什至可以单步执行函数以查看发生了什么。

如有任何帮助,我们将不胜感激。

最佳答案

你知道 std::string 的存在吗?这是一个在 C++ 中处理字符串的类; char * 是 C 的遗留物。

std::string 提供了 + 运算符,它可以满足您的需求。

关于c++ - 在 C++ 中连接两个 char* 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8494221/

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