"faebdc")-6ren"> "faebdc")-大家好,我正在研究一个以下列方式操作任何字符串的函数。 “abc”->“出租车” “abcd”->“dacb” "abcdef"-> "faebdc" “divergenta”->“adtinveer-6ren">
gpt4 book ai didi

c++ - 操作字符串的函数 ("abcdef"-> "faebdc")

转载 作者:行者123 更新时间:2023-11-27 23:23:06 25 4
gpt4 key购买 nike

大家好,我正在研究一个以下列方式操作任何字符串的函数。

“abc”->“出租车”

“abcd”->“dacb”

"abcdef"-> "faebdc"

“divergenta”->“adtinveerg”

...等等。

这是我到目前为止想出的代码。我认为它可以完成工作,但我认为代码和解决方案有点难看,而且我不确定它是否是故障证明以及它是否在每个给定情况下都能正常工作。我将非常感谢对此代码的任何输入或有关如何编写此函数的任何示例。我求求你记住,我是个菜鸟,所以不要对我

string transformer(string input) {

string temp;
int n = 0;
int m = (input.length() -1);

for( int i = 0; i < input.length(); i++) {

temp += input[m];

if (input[m] == input[n]) {
break;
}

else {
temp += input[n];
}

n += 1;
m -= 1;

if ( temp.length() == input.length() ) {
break;
}
}
return temp; }

最佳答案

你有三个问题。

用“abbba”试试。如果结果不是你想要的,那么这个条件:

if (input[m] == input[n]) {
break;
}

完全错误。

再看另一个条件:

if ( temp.length() == input.length() ) {
break;
}

您一次向 temp 添加两个字符。如果 input 的长度为奇数怎么办?

假设它工作正常。考虑循环:

for( int i = 0; i < input.length(); i++) {

...

if ( temp.length() == input.length() ) {
break;
}
}

该循环永远不会for 语句中终止。你不妨这样做:

while( temp.length() < input.length() ) {
...
}

一旦一切正常,您应该研究一下迭代器。

关于c++ - 操作字符串的函数 ("abcdef"-> "faebdc"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11436665/

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