假设我给了一个字符串并且需要以相反的顺序打印准确的第一半或 50% 的字符串。
我试图设置 strlen(s)=n/2 但要求: 错误:需要左值作为赋值的左操作数|。
#include<bits/stdc++.h>
using namespace std;
int t,i,j;
char s[101],b[101];
int main()
{
cin>>t;
for(i=0;i<t;i++)
{
cin>>s;
int n=strlen(s)-1;
for(i=n,j=0;i>=0;i--,j++)
b[j]=s[i];
strlen(b)=n/2;
cout<<b<<"\n";
}
}
应该以相反的顺序打印出字符串的第一半
最佳答案
使用 std::string
和 std::reverse_iterator
,你可以这样做
std::string get_1st_half_rev(const std::string& s)
{
return {std::rbegin(s),
std::rbegin(s) + (s.size() + 1) / 2};
}
关于c++ - 打印给定字符串的 50% 或一半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58594818/