gpt4 book ai didi

c# - 字符串文字和字 rune 字可以连接吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:07 26 4
gpt4 key购买 nike

为什么 name 在以下 C++ 代码中行为不当?

string name =  "ab"+'c';

等效代码在 Java/C# 中的行为如何?

最佳答案

尝试

std::string name = "ab" "c";

std::string name = std::string("ab") + c;

在 C++ 中,“ab”不是 std::string,而是指向字符字符串的指针。当您将整数值添加到指针时,您会得到一个指向字符串更下方的新指针:

char *foo = "012345678910121416182022242628303234";
std::string name = foo + ' ';

name 设置为“3234”,因为 ' ' 的整数值为 32,foo 开头之后的 32 个字符是字符串末尾之前的四个字符。如果字符串更短,您将尝试访问未定义内存区域中的内容。

解决方案是从字符数组中创建一个 std:string。 std:strings 允许您按预期向它们附加字符:

std::string foo = "012345678910121416182022242628303234";
std::string name = foo + ' ';

name 设置为“012345678910121416182022242628303234”

关于c# - 字符串文字和字 rune 字可以连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/635807/

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