我需要从给定的输入字符串中找到词典上最大的字符串。所以如果输入是
enjoy
o/p 应该是
yenjo
我试过的代码是....
int n;
cout<<"Enter the number of strings";
cin>>n;
int len[n];
char str[n][1000];
for(int i=0;i<n;i++)
{
cin>>str[i];
len[i]=strlen(str[i]);
}
int num,pos[n];
for(int i=0;i<n;i++)
{
pos[i]=0;
num=int(str[i][0]);
for(int j=1;j<len[i];j++)
{
if(int(str[i][j])>num)
{
num=int(str[i][j]);
pos[i]=j;
}
}
}
int i,j,k;
char temp[1];
for(i=0;i<n;i++)
{
for(j=0;j<pos[i];j++)
{
temp[0]=str[i][0];
for(k=0;k<len[i];k++)
{
str[i][k]=str[i][k+1];
}
strcat(str[i],temp);
str[i][len[i]]='\0';
}
cout<<str[i]<<"\n";
}
return 0;
}
但是这段代码只检查最大的数字,而不是它旁边的数字,因此 i/p 失败
blowhowler
o/p 应该是wlerblowho
,但我得到 o/p 为whowlerblo
.
我如何跟踪最大字符之前的每个元素以获得正确的输出?