Last active
April 19, 2021 12:15
-
-
Save nickroh/444412658a059d6895c93581de5bbbfe to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지 | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <stdbool.h> | |
char dic[100]; // 결과값 배열 | |
int compare(const void *a, const void *b){ // 오름차순 비교 함수 구현 | |
int num1 = *(int *)a; // void 포인터를 int 포인터로 변환한 뒤 역참조하여 값을 가져옴 | |
int num2 = *(int *)b; // void 포인터를 int 포인터로 변환한 뒤 역참조하여 값을 가져옴 | |
if (num1 > num2) // a가 b보다 작을 때는 | |
return -1; // -1 반환 | |
if (num1 < num2) // a가 b보다 클 때는 | |
return 1; // 1 반환 | |
return 0; // a와 b가 같을 때는 0 반환 | |
} | |
bool checker(char a){ | |
for(int i=0;i<strlen(dic);i++){ | |
if(a == dic[i]){ | |
return false; | |
} | |
} | |
return true; | |
} | |
void func(char arr[]){ | |
int diccnt=0; // 결과값 길이 | |
int len = 0; // 문자열의 길이 | |
len = strlen(arr); // 문자열의 길이를 len 변수에 저장 | |
qsort(arr, len, sizeof(char), compare); | |
for(int i=0; i<len; i++){ | |
if(checker(arr[i])){ | |
dic[diccnt]= arr[i]; | |
diccnt++; | |
} | |
} | |
for(int i=0;i<diccnt;i++){ | |
printf("%c ", dic[i]); // 문자열의 내용을 출력 | |
} | |
} | |
int main(){ | |
int len = 0; // 문자열의 길이 | |
char s1[100]; // 크기가 10인 char형 배열을 선언 | |
printf("Enter String: "); | |
scanf("%[^\n]s", s1); // 표준 입력을 받아서 배열 형태의 문자열에 저장 | |
func(s1); | |
system("pause > nul"); | |
return 0; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment