指定された入力文字列から辞書編集的に最大の文字列を見つける必要があります。したがって、入力が
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
ます。
正しい出力を得るために、最大の文字の前にある各要素を追跡するにはどうすればよいですか?