C++ 函数,该函数接受字符串参数并将其反转为C++;
我想创建一个函数,它接受字符串参数,将其反转并返回反转后的字符串。已经有了一些答案,但没有一个是完全有效的。 这是我的密码:C++ 函数,该函数接受字符串参数并将其反转为C++;,c++,C++,我想创建一个函数,它接受字符串参数,将其反转并返回反转后的字符串。已经有了一些答案,但没有一个是完全有效的。 这是我的密码: #include <iostream> #include <string> using namespace std; string revStr(string word){ string reversed = ""; if(word.size() == 0) { return reversed;
#include <iostream>
#include <string>
using namespace std;
string revStr(string word){
string reversed = "";
if(word.size() == 0)
{
return reversed;
}
for (int i = word.length()-1; i>=0; i--){
reversed = reversed+word[i];
}
return reversed;
}
int main(){
string strin;
cout << "enter string;" << endl;
cin>> strin;
cout << revStr(strin);
}
#包括
#包括
使用名称空间std;
字符串revStr(字符串字){
字符串反转=”;
if(word.size()==0)
{
反向返回;
}
对于(int i=word.length()-1;i>=0;i--){
反向=反向+字[i];
}
反向返回;
}
int main(){
弦纹;
cout strin;
cout:
2) 行为类似于格式化输入函数。在构造和检查sentry对象(可能跳过前导空格)后,首先使用str.erase()
清除str
,然后从is中读取字符并将其附加到str
,就像通过str.append(1,c)一样
,直到下列条件之一变为真:[……]
std::isspace(c,is.getloc())
对于is中的下一个字符c是真的(此空白字符保留在输入流中)
根据定义,您使用的方法一直读取到一个空白,因此您只能将Hello
读入strin
。您应该使用另一种读取方法,如getline
或stringstream
,您需要使用std::getline
来输入带空格的字符串
为了逆转您的代码> STD::String ,考虑使用<代码> STD::反<代码> > <代码> <代码>,虽然您的算法也是正确的。
代码:
#包括
#包括
#包括
使用名称空间std;
int main()
{
弦纹;
cout请参见,cin会在出现空格或换行符时停止输入。因此,要输入带空格的字符串,必须使用cin.getline()
,这可以通过使用以下代码段来完成:
string S;
cin.getline(1000,'\n');
这将需要输入,直到换行符进入字符串S
,然后我们只需要反转字符串,这可以通过两种方式完成
方法1:
使用
头文件中的std::reverse
。此函数适用于所有容器,并将迭代器作为参数
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
string S;
getline(cin,S);
reverse(S.begin(), S.end());
return 0;
}
我认为您可以使用revStr()
进行处理,但您需要获得整行输入,但使用cin
将空间视为分隔符,因此您只能从Hello World
中获得Hello
将cin>>strin
替换为getline(cin,strin)
还有std::reverse
来自
哪个部分不起作用,输入还是反转?减少问题有助于解决它,这是你应该从中得出的结论。试着写一行cout>strin;
你应该发现问题:)试着使用std::getline(std::cin,strin)
而不是std::cin>>strin
。
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
string S;
getline(cin,S);
reverse(S.begin(), S.end());
return 0;
}
#include <bits/stdc++.h>
using namespace std;
string myfunc(string S)
{
int l = 0;
int r = S.size()-1;
while(l<r)
{
swap(S[l],S[r]);
l++;
r--;
}
return S;
}
int main()
{
ios_base::sync_with_stdio(false);
string S;
getline(cin,S);
S = myfunc(S);
cout<<S;
return 0;
}