C++标准库 如何连接两个const char *类型字符串,并返回const char * 类型结果?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++标准库 如何连接两个const char *类型字符串,并返回const char * 类型结果?相关的知识,希望对你有一定的参考价值。

参考技术A c++的话最好转到string在链接,比较安全.
const char* function(const char* str1, const char* str2)
std::string src1(str1);
std::string src2(str1);
std::string dest = src1 + src2;
return dest.c_str();
参考技术B char
*
const
p是一个char型指针,指针是常量,不允许修改,即类似p=q的语句是错误的;
char
const
*
p和const
char
*
p是同一种char型指针,指针指向的字符被看作是常量,不允许修改,即类似*p
=
q的语句是错误的。
参考技术C const char *a="abcd";
const char *b="efgh";
const char *c;
char buf[10];
strcpy(buf,a);
strcat(buf,b);
c=(const char*)buf;本回答被提问者和网友采纳

如何使用 UTF-8 字符序列在 C++ 中初始化 const char* 和/或 const std::string?

【中文标题】如何使用 UTF-8 字符序列在 C++ 中初始化 const char* 和/或 const std::string?【英文标题】:How to initialize a const char* and/or const std::string in C++ with a sequence of UTF-8 character? 【发布时间】:2010-10-07 11:44:08 【问题描述】:

如何在 C++ 中使用 UTF-8 字符序列初始化 const char* 和/或 const std::string?

我正在使用接受 UTF8 字符串作为 const char* 的正则表达式 API。初始化代码应该是平台无关的。

【问题讨论】:

可用选项取决于您使用的编译器。 很容易。 const char* c = "ěščř";。只需将文件保存为 UTF-8 编码即可。 这些选项还取决于 UTF-8 字符串在源代码中的可读性。 运行时提供的任意字符串,还是编译时已知的字符串?如果是前者,它是如何提供的?作为一种特殊情况,如果是后者,并且如果您的字符串仅包含 ascii(7 位)字符,则 UTF-8 与这些字符的 ascii 相同,因此只需使用字符串文字。 const char *utf8_string = "hello, world";。当然,假设您的平台使用 ascii 作为其基本编码。 【参考方案1】:

这应该适用于任何编译器:

const char* twochars = "\xe6\x97\xa5\xd1\x88";

【讨论】:

【参考方案2】:

编译器 - 独立答案也是: 将文件保存为 UTF-8 无 BOM 签名编码。

const char* c = "ěščř"; //Just save the file in UTF-8 without BOM signature.

(见问题的评论。) 顺便说一句,Windows 控制台必须设置为 UTF8。有关更多详细信息,请参阅 post 到 question。

【讨论】:

这应该是当今推荐的做法。明确说明您的所有源代码都是 UTF-8,没有 BOM,不例外,始终对所有文件使用 UTF-8,然后按照 C/C++ 标准方式支持的方式初始化常量字符串。

以上是关于C++标准库 如何连接两个const char *类型字符串,并返回const char * 类型结果?的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中将 const char * 与字符串连接的最干净的方法是啥?

C++学习-const

c++ uint32 如何转 const char

int main(int, char const* const*) 格式正确吗?

如何在 C++ 中打印 const char 指针

c++ 不使用 C 标准库将字符串和 int 转换为 char*