프로그램 설명 : 두 개의 배열을 만들고 각 배열에 단어를 담는다.
소문자가 담기는 경우도 있기 때문에 모든 단어를 대문자로 변경한다.
그리고 각 문자의 앞 뒤 여부를 계산해서 앞에 위치하는 단어를 찾아낸다.
만약 각 단어가 같은 경우 다음 글자를 검사한다.
예) (ALONE, APPLE) 첫번 째 글자인 A가 같으므로 두 번째 글자인 L, P를 비교한다.
혹은 두 단어가 완전히 일치하는 경우도 찾아낸다.
#include <stdio.h>
int main(void)
{
char arr[100] = {0};
char arr1[100] = {0};
int i=0, sum = 0;
char *p = arr;
char *p1=arr1;
scanf("%s",p);
scanf("%s",p1);
for(i=0;p[i]&&p1[i]<'\0';i++)//대문자로 받을 시 모두 소문자로 바꿔줌
{
if('A'>p[i]&&'z'<p1[i])
p[i]=p1[i]-'a'+'A';
if('A'>p1[i]&&'z'<p1[i])
p1[i]=p1[i]-'a'+'A';
}
i=0;
if (*(p+i) == *(p1+i) )
i++; //글자가 같으면 다음 글자 비교
if( *(p+i) > *(p1+i) ) {
printf("%s가 %s보다 앞에 있습니다.\n", p1, p);
} else if((*(p+i))<(*(p1+i))) {
printf("%s가 %s보다 앞에 있습니다.\n", p, p1);
} else {
printf("두 문자열이 같습니다.\n");
}
return 0;
}
방명록이나 댓글로 질문 남겨주세요.
'IT > C' 카테고리의 다른 글
C언어 문자 종류별 개수, 각 문자 개수 구하기 (0) | 2017.07.17 |
---|---|
C언어 내림차순 정렬 프로그램 (0) | 2017.07.17 |