文字列内の文字数に基づいて文字列の並べ替えに取り組もうとしています。私が行ったことは、ユーザーから 5 つの入力文字列を取得し、それらを 5 つの配列要素に格納してから、 を使用してそれらの長さを見つけることstrlen()
です。strlen(i)
ここで、i = 0 から 4 までの出力を配列に格納しました。その配列を任意の並べ替えアルゴリズムで並べ替える必要があります。各文字列の長さを見つけるまでの私のコードは次のとおりです。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char *p[5]; //array of integer pointing to string
int x[5]; //integer array to store output of strlen()
printf("Enter the strings to be sorted");
for(i=0;i<=4;i++)
{
p[i]=calloc(100,1);
scanf("%99s\n",p[i]); //for getting and storing user input i.e string.
}
for(i=0;i<=4;i++)
{
printf("enetered [%d] string is = %s : String size = %d\n",i, p[i], (int) strlen(p[i])); //for printing the string and its length
}
for(i=0;i<=4;i++)
{
x[i]=strlen(p[i]); //for storing the length of string in array
}
for(i=0;i<=4;i++)
{
printf("%d\n",x[i]);
}
#ifdef OLD
for(i=0;i<=4;i++)
{
x[i]=p[i];
}
for(i=0;i<=4;i++)
{
printf("%s\t %d\n",x[i],strlen(x[i]));
}
#endif
return 0;
}
x[0] は文字列 p[0] の長さに対応し、x[1] は p[1] などに対応するとします。x[i] は整数配列なので、並べ替えることができます。整数配列をソートすると、何らかのコードによって整数配列と結合された文字列もシャッフルおよびソートされるようにする方法があります。
私はまだ初心者レベルの学習者ですが、これを別の方法で実装する方法を見つけようとしました。これに加えて、文字列の並べ替えの一般的なアルゴリズムを提案できる人がいれば。
そして、私の二次的な質問は、文字列の文字数に基づいて文字列をソートすることを誰かが提案できるかどうかです。