gpt4 book ai didi

c++ - 连接 char 变量

转载 作者:行者123 更新时间:2023-11-28 01:18:54 26 4
gpt4 key购买 nike

我尝试使用库“iostream”和“String”制作一个小程序,以向后显示给定的字符串作为命令提示符的输出。我使用递归返回值(字符串)函数来执行向后获取给定字符串并将其返回到要在屏幕上显示的主函数的整个过程,如下所示:

#include <iostream>
#include <string>
using namespace std;
string rev(string, int);

int main() {
string let;
cout << "Enter your string: ";
cin >> let;
cout << "The string in reverse is: " << rev(let, let.length());
cout << endl;
return 0;
}

string rev(string x, int y) {
if (y != 0 )
return x[y - 1] + rev(x, y - 1);
else
return "\0";
}

关于这个过程,我不明白的是,虽然在 rev 函数上递归地执行串联,并且使用 char 变量可以正常工作,并将字符串返回给主函数,尝试像这样正常连接 char 变量会产生垃圾作为输出:

#include <iostream>
#include <string>
using namespace std;

int main() {
string hd;
string ah = "foo";
hd = ah[2] + ah[1] + ah[0];
cout << hd << endl;
return 0;
}

即使我添加到“hd”链“\0”,它仍然会产生垃圾。

最佳答案

您的第一个示例将字符隐式转换为字符串并使用适当的运算符 +

虽然你的第二个例子是添加字符 https://en.cppreference.com/w/cpp/string/basic_string/operator_at
返回对位置字符的引用

关于c++ - 连接 char 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57589468/

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