【发布时间】:2012-01-18 04:02:02
【问题描述】:
Ps:这更像是一个概念问题。
我知道这无缘无故让事情变得更加复杂,但我想知道的是。如果我没记错的话,c++ 中的 const char* "like this" 指向 l 并且会在编译时自动归零。我相信它正在创建一个临时变量const char* 来保存它,除非它使用字节变量跟踪偏移量(我没有检查反汇编)。我的问题是,如果可能的话,您如何在无需调用函数或实例化字符串的情况下向该字符串添加字符?
示例(这是错误的,只是为了让您可以想象我的意思):
"Like thi" + 's';
我想出的最接近的方法是将其存储到具有足够空间的const char* 并更改其他字符。
例子:
char str[9];
strcpy(str, "Like thi")
str[8] = 's';
说明: 否决票:这个问题没有显示任何研究工作;不清楚或没用
好的,所以这个问题被高度否决了。我的问题缺少哪些方面没有太多推理,所以我会努力提高所有这些品质。
我的问题更多,所以我可以更好地理解当您简单地创建一个字符串 "like this" 而不将该字符串的地址存储在 const char* 中时会发生什么我还想知道是否可以连接/更改该字符串的内容,而不使用 strcat() 之类的函数,并且不使用类字符串中的重载运算符 +。我知道这对于处理 C++ 中的字符串并不是非常有用,但我很好奇除了标准方法之外是否还有其他方法。
string example = "Like thi" + "s"; //I'm aware of the string class and its member functions
const char* example2 = "Like this"; //I'm also aware of C-type Strings (CString as well)
也有可能没有英语作为我的母语让事情变得更糟,我为造成的混乱道歉。
【问题讨论】:
-
不太清楚你想要达到什么目标,或者为什么......
-
否决者和关闭者请解释你的理由。这是一个有效的问题,似乎 OP 不明白发生了什么。
-
只是一个旁注。
const char*是一个常数,const关键字就是这样说的。您不会更改常量。
标签: c++ concatenation string-concatenation