强制在myString [1]而不是myString [0]上返回字符串的第一个字符串?

时间:2012-07-24 14:47:41

标签: c++ string

我希望我的代码中的字符串表示以索引1(不是0)开头。我正在使用索引1处理的论文;我想与原始描述保持一致。

目前,我只是使用额外的空格char初始化字符串:

the_string = ' ' + string;

但是,这意味着the_string.length()与字符串的“实际”长度不一致。

哪种替代解决方法(编写我自己的字符串索引函数,创建一个mystring类并重载[]运算符等)生成最少的代码,它是什么?

1 个答案:

答案 0 :(得分:2)

一个简短的解决方案是使用宏扩展来-1索引。

#define I(x) ((x) - 1)

the_string[I(1)] // This will access the first character of the string.

如果你想在纸面和代码上对齐你的解决方案,这很好 - 但是永远不要让这些代码进入任何生产系统。