게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C언어는 한글을 어떻게 받아 들이나요?
게시물ID : programmer_17860짧은주소 복사하기
작성자 : 자르반고등어
추천 : 0
조회수 : 2503회
댓글수 : 13개
등록시간 : 2016/07/10 23:49:06
옵션
  • 본인삭제금지
//각 글자 하나하나를 가져와서 비교해보는 방법 연구
//각 자음 모음을 숫자화 시키면 첫번째 수는 -95 이고 그이후의 숫자가 각 자음, 모음에 따라 다르다
//따라서 각 홀수 (0부터 세니까)의 수를 비교해서 같은 숫자이면 같은 글자일 확율이 높음
/**/
#include<stdio.h>
#include<string.h>
#pragma warning(disable:4996)

int main()
{
char i[20];
char k[20];
int j = 0;
int a=0;
int b=0;
gets(i);
gets(k);
printf("i에 저장된 글자:%s\n", i);
while (a < 20)
{
       printf("%d\n", i[a]);
  a++;
}
printf("**************************\n");
printf("k에 저장된 글자: %s\n", k);
a = 0;
while (a < 20)
{
printf("%d\n", k[a]);
a++;
}
printf("************************\n");
for (a = 0; a<20; a++)
{
if (i[a] == k[a])
{
a++;
continue;
printf("%c\n", i[a]); //각 배열을 비교해서 같으면 글자를 띄움 -> 안뜸
}
if (i[a] = !k[a])
{
printf("%s", i[j]);
}
}
printf("************************** \n");
for (a = 0; a < 20; a++)
{
b = strncmp(i, k, a );
printf("%d번째 숫자 비교결과: %d \n",a+1, b);
}
return 0;
}
제목 없음1.png
제목 없음2.png

도서관리 프로그램을 존더 크고 아름답게 만들기 위해 이것저것 시도해보고 있는데
한글자체를 글자가 어떻게 받아 들이는지 궁금합니다.
소스처럼 배열을 선언해서 글자를 받아 들이면 각 배열의 숫자를 숫자로 표현하게 했는데 
이과정에서 각각2바이트씩 표현하되 하나의 숫자는 동일하면서 나머지 1바이트의 숫자가 다름으로써 한글의 차이를 나타냄을 알았습니다.
이후 각 배열을 비교해서 그 결과값을 숫자로 띄워 보는데 
제가 생각했던 결과는 처음 두 글자인 '안녕' 부분을 제외한 나머지가 다르가 그 이후에 나머지 배열값은 같으므로
0
0
0
0
-1
-1
-1
-1
-1
-1
0
0
0
0
0
0
0
0
0
0
라고 뜰 것이라 생각했는데 결과가 저렇게 떴네요
왜 결과가 이런식으로 나오는지 궁금합니다.
배열을 숫자로 표현하는 쪽에서는 0 이후로 양쪽 모두 -52라는 동일한 숫자가 떳음에도 불구하고 
두 배열을 비교해보면 같은 -52 라고 나온 쪽까지도 다른 결과가 나오는지 궁금합니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호