Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

名前をアルファベット順にソートするCプログラム


ユーザーは名前の数を入力する必要があり、それらの名前はstrcpy()関数を使用してアルファベット順にソートする必要があります。

文字の配列(または)文字の集合は文字列と呼ばれます。

宣言

以下は配列の宣言です-

char stringname [size];

たとえば、char string [50];長さ50文字の文字列。

初期化

  • 1文字の定数を使用する
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • 文字列定数の使用
char string[10] = "Hello":;

アクセス

「\0」に遭遇するまで文字列にアクセスするために使用される制御文字列「%s」があります

strcpy()

この関数は、ソース文字列を宛先文字列にコピーするために使用されます。

宛先文字列の長さがソース文字列以上です。

strcpy()関数の構文は次のとおりです-

strcpy (Destination string, Source String);

たとえば、

char a[50];             char a[50];
strcpy ("Hello",a);      strcpy ( a,"hello");
output: error           output: a= "Hello"

名前をアルファベット順にソートするために使用されるロジックは次のとおりです-

for(i=0;i<n;i++){
   for(j=i+1;j<n;j++){
      if(strcmp(str[i],str[j])>0){
         strcpy(s,str[i]);
         strcpy(str[i],str[j]);
         strcpy(str[j],s);
      }
   }
}

プログラム

以下は、名前をアルファベット順にソートするCプログラムです-

#include<stdio.h>
#include<string.h>
main(){
   int i,j,n;
   char str[100][100],s[100];
   printf("Enter number of names :\n");
   scanf("%d",&n);
   printf("Enter names in any order:\n");
   for(i=0;i<n;i++){
      scanf("%s",str[i]);
   }
   for(i=0;i<n;i++){
      for(j=i+1;j<n;j++){
         if(strcmp(str[i],str[j])>0){
            strcpy(s,str[i]);
            strcpy(str[i],str[j]);
            strcpy(str[j],s);
         }
      }
   }
   printf("\nThe sorted order of names are:\n");
   for(i=0;i<n;i++){
      printf("%s\n",str[i]);
   }
}

出力

上記のプログラムを実行すると、次の結果が得られます-

Enter number of names:
5
Enter names in any order:
Pinky
Lucky
Ram
Appu
Bob
The sorted order of names is:
Appu
Bob
Lucky
Pinky
Ram

  1. 基数ソートのCプログラム

    並べ替えアルゴリズム は、リストのコンポーネントを特定の順序で配置するアルゴリズムです。最もよく使用される順序は、番号順と辞書式順序です。 基数 sortは、非比較のソートアルゴリズムです。基数ソートアルゴリズムは、ソートされていないリストに最も適したアルゴリズムです。 同じ場所の値の個々の数字を最初にグループ化することにより、要素を並べ替えます。基数ソートの考え方は、最下位桁(LSD)から最上位桁(MSD)まで桁ごとにソートすることです。 、昇順/降順による。基数ソートは、特大の名前のリストをアルファベット順に並べ替えるときに数回使用される小さな方法です。具体的には、名前のリストは最初に

  2. 文字列をカスタム順序で並べ替えるPythonプログラム

    1つの英数字の文字列があるとします。次の条件に基づいて並べ替える必要があります ソートされたすべての小文字は大文字の前に配置されます。 ソートされた大文字はすべて数字の前に配置されます。 ソートされたすべての奇数桁は、ソートされた偶数桁の前に配置されます。 したがって、入力がs =HeLlo1234のような場合、出力はeloHL1324になります。 これを解決するには、次の手順に従います- 関数f()を定義します。これにはcがかかります コード:=0 cが大文字の場合、 コード:=10 ^ 3 それ以外の場合、cが数字の場合、 コード:=10 ^ 6