如何在不删除任何字符的情况下将字符从字符串中的某个位置移动到其最前面
How do I move a character from a position in the string to the very front of it without deleting any character?
我的字符串大约有 14 个字符长,我必须将一个字符从字符串中的某个地方移动到最前面,并且我无法删除已经位于myString[0]
中的字符。我该怎么做?
std::string x = "foobar";
x.insert(0, 1, x[3]); // insert the 4th character at the beginning
x.erase(4, 1); // erase the 5th character
// (5th because the preceding operation added a character
请参阅basic_string的相应成员函数。
作为使用 std::string
函数的替代方法,您可以尝试 <algorithm>
中的函数。
std::string x = "foobar";
std::rotate(x.begin(), x.begin() + 3, x.begin() + 4); // foobar -> bfooar
或:
std::reverse(x.begin(), x.begin() + 3); // foobar -> oofbar
std::reverse(x.begin(), x.begin() + 4); // oofbar -> bfooar
这些都不会更改字符串的size()
,并且不应触发内存重新分配。
相关文章:
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- C++指针数组到字符数组中的特定位置
- 计算在同一位置至少包含一个常用字符的不同字符串对
- 我如何知道字符串中字符相对于英文字母的位置值?
- 我正在尝试为字符打印一些相应的值,但条件总是转到其他位置
- 递增 'int i = 0' 以在初始化的字符数组的位置递增
- 反转字符串中单词的位置,而不更改 O(1) 空格限制中特殊字符的顺序
- 如何计算 3d 数组中的索引值在内存中的位置?如何计算字符**中的索引值在内存中的位置?
- 如何从输入字符串中提取特定位置的字符?
- 如何在 Clang AST 中的源位置之后找到字符的源位置?
- 从输入 1 查找输入 2 中字符的位置
- 为字符串中的每个字符(不是字符位置!)分配唯一的索引
- 提取字符后返回到文件中的特定位置
- 从文件对象的当前位置删除字符
- 访问字符阵列中不可用的内存位置(超出范围值)
- 使用指针在字符串中获取字符的位置
- 如何使用 antlr4 恢复特定行和字符位置的 ParserRuleContext
- 创建一个从前缀到C 中字符位置的新字符串
- c++字符串交换字符位置
- 从文本控件中检索字符位置的客户端区域坐标