Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

이름을 알파벳순으로 정렬하는 C 프로그램

<시간/>

사용자는 이름의 개수를 입력해야 하며, 그 이름은 strcpy() 함수를 사용하여 알파벳순으로 정렬되어야 합니다.

문자 배열(또는) 문자 모음을 문자열이라고 합니다.

선언

다음은 배열에 대한 선언입니다 -

char stringname [size];

예를 들어, char string[50]; 길이 50자의 문자열.

초기화

  • 단일 문자 상수 사용
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