ํฐ์คํ ๋ฆฌ ๋ทฐ
[C์ธ์ด] ์ ๋์ฝ๋ ์ ๋ ฅ๋ฐ๊ธฐ (ํ๊ธ๋ง ์ ๋ ฅ๋ฐ๋ ํจ์)
Carrot๐ฅ 2013. 4. 20. 01:561.
์ ๋ฒ ๊ณผ์ ์์ ์ซ์๋ง ์
๋ ฅ๋ฐ๋ get_only_num ํจ์๋ฅผ ๋ง๋ค์์๋ค.
์ฌ์ฉ์๊ฐ ์
๋ ฅํ ํค๋ฅผ ์์คํค์ฝ๋๋ก ๋ฐ์์ ์ซ์์ผ ๊ฒฝ์ฐ์๋ง ๋ฐ๊ณ ,
๋ค๋ฅธ ๋ฌธ์ ์
๋ ฅ์์๋ ๊ทธ๋ฅ ๋จน์ด์ ๋ฒ๋ฆฌ๊ณ , ์๋ฌ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ ํํ์๋๋ฐ,
์ด๋ฒ์ ๊ณผ์ ์์๋ ์ด๋ฆ์ ๋ฌธ์์ด๋ก ๋ฐ์ ์ผ์ด ์์ด์ ๊ทธ ํํ๋ก ๋ง๋ค์ด ๋ณด๋ ค๊ณ ํ๋ค.
2.
scanf("%d", str) ํํ๋ก ๋ฌธ์์ด์ ๋ฐ๊ฒ๋๋ฉด ๊ธธ์ด์ ํ์ ๋๊ธฐ๊ฐ ํ๋ค๊ณ
์ค๋ฒํ๋ก ์ฒ๋ฆฌํ๊ธฐ๋ ๊ณค๋ํ๋ค.
get_only_num์ฒ๋ผ ์ ํ๋ ๊ธธ์ด๋ฅผ ๋๊ธฐ๊ฒ๋๋ฉด ์๋ฌด๋ฆฌ ์
๋ ฅํด๋ ๋ค ๋จน์ด์ ๋ฒ๋ฆฌ๊ฒ ํ๊ณ ์ถ์๋ฐ
์ผ๋จ ์
๋ ฅ๋ฐ๊ณ ๊ธธ์ด๋ฅผ ์ฌ๋ ๋ฐฉ์์ด๋ผ ๋ง์ ์๋ค์๋ค.
์ ๋ ๊ฒ ํ๊ธ์์ฉ ๊ด๋ฆฌํ๋ ค๋ฉด charํ ๋ฌธ์ ํ๊ธ์๋ฅผ ์ผ๋จ ํต์งธ๋ก๋ฐ๊ณ
์๋ฅผ ์ธ๊ฑด์ง ์์ธ๊ฑด์ง (๋ด๊ฐ ์ํ๋ ๋ฌธ์ํํ์ธ์ง, ๊ธธ์ด๋ ์ ์ ํ์ง) ๊ฒฐ์ ํด์ผํ๋ค.
3.
์ด๋ฆ์ ์์ด๋ก ์
๋ ฅํ ๊ฒฝ์ฐ์๋ ์ ๋ฒ์ด๋ ๋๊ฐ์ด ์ฒ๋ฆฌํ๋ฉด ๋ฌธ์ ์๋๋ฐ
ํ๊ธ์ ์
๋ ฅํด๋ฒ๋ฆฌ๋ฉด ์ด/์ค/์ข
์ฑ๊ฐ ๊ฐ๊ฐ ๋ค๋ฅด๊ฒ ์
๋ ฅ๋๊ณ ์ถ๋ ฅ๋ ๋์นธ์ด๋ผ ๋ฌธ์ ๊ฐ ๋ง์๋ค.
C์ธ์ด๊ฐ ํ๊ธ์ ์ด๋ป๊ฒ ๋ฐ์๋ค์ด๋์ง๋ถํฐ ์์๋ดค๋ค.
ํ๊ธ์ ํฌํจํด ํน์๋ฌธ์, ํ์ ๋ฑ๋ฑ์ ์ ๋์ฝ๋๋ก ์ธ์ํ๋๋ฐ
์์คํค์ฝ๋๋ 1 byte์ธ charํ๋ณ์ ํ๋๋ง ์ฌ์ฉํ์ฌ ๋ด์์ ์๋๋ฐ ๋นํด
์ ๋์ฝ๋๋ 2 byte๋ผ์ ๋ฌธ์ํํ๋ก๋ ์ ๋ ๋ฐ์์๊ฐ์๊ณ ๋ฌธ์์ดํํ๋ก ๋ฐ์์ผํ๋ค.
4.
1byte+1byte๋ก ๋ฐ๋ก ๋ฐ์ ๋ฌธ์๋ฒํผ๋ฅผ ์ ๋์ฝ๋ ํ๊ธ์๋ก ์ด๋ป๊ฒ ์ถ๋ ฅํด๋ด๋์ง
์์๋ณด๋ ค๊ณ ๊ฐ๋จํ ์ฝ๋ฉ์ ํด๋ณด์๋ค.
int main()
{
char str1;
char str2;
char str_arr[3]={0,0,'\0'};
str1 = getchar();
str2 = getchar();
printf("%c%c\n\n", str1, str2);
system("pause");
fflush(stdin);
str_arr[0] = getchar();
str_arr[1] = getchar();
printf("%s\n\n", str_arr);
return 0;
}
์ ์ผ ์ฒ์์ str1์ getchar๋ก ํ๊ธ(์ ๋์ฝ๋) 1๊ธ์๋ฅผ ์
๋ ฅ๋ฐ์ผ๋ฉด
str1์ด 1byte๋ผ ๋ค ์ ์ฅํ์ง ๋ชปํ๊ณ ๋ฒํผ์ ๋จ์ ๋ถ๋ถ์ด ์๋์ผ๋ก str1์ผ๋ก ์ ์ฅ๋๋ค.
(์ ๋ฒ์ ์ด๋ ๊ฒ ์ ์ ๋ก ๋ฒํผ์ฐ๋ญ์ด๊ฐ ๋์ด๊ฐ๋๊ฑฐ๋๋ฌธ์ ๊ฐ๊ณ ์ํ๋ค๊ฐ fflush(stdin)์ ์๊ฒ๋์๋ค)
๊ทธ๋ฆฌ๊ณ ์ถ๋ ฅํ ๋๋ "%c%c\n\n"์ด๋ ๊ฒ ๋ ๋ฌธ์๋ฅผ ์ด์ด์ ๋ฐ์๋ค.

์คํ ์๋ํ ๋๋ก ์ถ๋ ฅ์ด ๋์๋ค.
์ ๊ทธ๋ฆฌ๊ณ ํน์๋ํด์ "%c %c\n" ์ด๋ ๊ฒ ๋ฌธ์ ์ฌ์ด์ ๊ณต๋ฐฑ์ ๋๋๋ ??๋ก ์ถ๋ ฅ๋์๋ค.
๋๋ฒ์งธ๋ str์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ ๋ฌธ์๋ฐฐ์ด๋ก ์ถ๋ ฅํด๋ณด๊ฒ ํ๋ค.
ํ๊ธ์๋๊น 1byte+1byte+๋๋ฌธ์ 1byteํด์ ์ด ์ธ๋ฑ์ค๊ฐ 3์ธ ๋ฐฐ์ด์ ํ๊ธ์๋ฅผ ๋ฃ์๋ค.
์ธ๋ฑ์ค3์๋ ์ด๊ธฐํํ ๋ ์ง์ ๋๋ฌธ์๋ฅผ ์ฝ์
ํ๋ค.
์๋ ์ถ๋ ฅ์ ์๋ํ๋๋ก ๋์๋ค.
5.
์ ๊ทธ๋ฌ๋ฉด ํ๊ธ๋ก๋ง ๋ ๋ฌธ์์ด์ ์
๋ ฅ๋ฐ๊ณ ์ถ์ผ๋ฉด
str[๊ธ์์][2] ์ ํํ๋ก ๋ ์ด์ฐจ๋ฐฐ์ด์ ๋ง๋ค์ด์
ํ๊ธ์๋ง๋ค 2๋ฐ์ดํธ์ฉ ์ชผ๊ฐ ์ ์ฅํ๊ณ
์ถ๋ ฅํ ๋ for๋ฌธ์ด์ฉํด์ ๋ถ์ฌ์ ํ๋ฉด๋๊ฒ ๊ตฌ๋
๊ทธ๋ฐ๋ฐ ์ฌ์ฉ์๊ฐ ์ ๋์ฝ๋๋ฅผ ์
๋ ฅํ๋ฉด ๋จ์๋ฒํผ๋ฅผ ๋๋ฒ์งธ ์ธ๋ฑ์ค์ ๋๊ธฐ๋ฉด ๋๋๋ฐ
๋ง์ฝ์ ๊ทธ๋ฅ ์์คํค์ฝ๋๋ฅผ ์
๋ ฅํด๋ฒ๋ฆฌ๋ฉด ๋๋ฒ์งธ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ๋ง๋ค๋ ค๋ ํจ์๋ ์ค์ง ํ๊ธ๋ง ์
๋ ฅ๋ฐ๋ ์ ๋๊น
์์คํค์ฝ๋๋ ํน์ํค์ธ ๋ฐฑ์คํ์ด์ค/์ํฐ์ธ์๋ ํ์๊ฐ ์๋ค.
๊ทธ๋ผ ์ผ๋จ ์ฌ์ฉ์๊ฐ ์ ๋ ฅ ๋ฌธ์๊ฐ ์์คํค์ฝ๋์ธ์ง, ์ ๋์ฝ๋์ธ์ง ๋จผ์ ๊ตฌ๋ถํด์ผํ๋ค.
ํ๊ธ์ฝ๋๋ 2๋ฐ์ดํธ ์ฝ๋์ด๋ฉฐ ์ฒซ๋ฒ์งธ ๋ฐ์ดํธ๊ฐ 128 ์ด์์ ๊ฐ์ด๋ฉด(์ฆ ์์์ด๋ฉด)
๊ทธ ๋ค์ ๋ฐ์ดํธ์ ํจ๊ป ์ฝ๋๋ก ์ธ์.
๋ฐ๋ผ์ str[i][0]์ด ์์์ด๋ฉด ์์คํค์ฝ๋๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ๋จ ์ด์ผ๊ธฐ๋ค.
str[i][0] = getch(); //์
๋ ฅ๋ฐ๊ณ ์ ๋์ฝ๋์ธ์ง๊ฒ์ฌ
if( str[i][0] < 0) //์ ๋์ฝ๋์ผ๋
{
str[i][1] = getch(); //๋ฒํผ์๋จ์๋ถ๋ถ๋ฐฐ์ด๋ค์์ธ๋ฑ์ค์์ ์ฅํ๊ณ ,
printf("%c%c", str[i][0], str[i][1]); //์ถ๋ ฅ
i++;
}
์๋ฐ์์ผ๋ก ์ง๋ฉด ๋ ๊ฒ ๊ฐ์ผ๋ค!!!
6.
Aใ
.............
์ ๊ธฐ๊น์ง ์๊ฐํด๋ด๊ณ ๋ฐ๋ณต๋ฌธ ์ ์ด๋ฌธ ์ ์ ํ ์์ด์
* ๋ฐฑ์คํ์ด์ค๋ฐ์์ ๋ฌธ์ ์ง์ฐ๊ณ ๋ค์์
๋ ฅ
* ์ํฐ๋ฐ์ผ๋ฉด ์
๋ ฅ์ข
๋ฃ
* ํ๊ธ์ด์ธ์ ๊ฐ (์ซ์/์์ด/ํน์ํค ๋ฑ) ์
๋ ฅํ๋ฉด ์๋ฌ๋ฉ์์ง์ ํจ๊ป ๋จน์ด์ ๋ฒ๋ฆฌ๊ธฐ
์ ๊ธฐ๋ฅ๊น์ง ๋ค ๊ตฌํํด๋ด๊ณ
๋์ด๊ตฌ๋ ์ถ์๋๋ฐ
์ง์ ์
๋ ฅํด๋ณด๋ ํ๊ธ์ด ์๋๊ฒ๋ค๋ ๋ฐ์ ๋๊ฐ ์์๋ค............

์ฐพ์๋ณด๋ฉด ๋ค๋ฅธ๊ฒ๋ค๋ ์์ํ
๋ฐ ์ผ๋จ์ ๋ฐฉํฅํค๋ฅผ ์ ๋ ๊ฒ ๋ฐ๋๋ค
ใ
ใ
ใ
ใ
ใ
๋ฐฉํฅํค๋ ์์คํค์ฝ๋๋ก ๋ฌด๋ฆฌ์์ด ๋ฐ์์ง๋์ค๋ฐ.......์์ฃ ......์์ฃ .......
์ง์ณ์ ์์ธ์ ๋์ค์ ์ฐพ์๋ณด๊ธฐ๋ก ํ๊ณ
์๋ฌดํผ ํด๊ฒฐ์ฑ
์ ์
๋ ฅ๋ฐ์ ๋ฌธ์ํํ๊ฐ ์์๋ผ๊ณ ํด์ ๋ค ๋ฐ์๊ฒ์ด์๋๋ผ
"ํ์คํ๊ฒ ํ๊ธ"์ผ ๋๋ง ๋ฐ๋๋ก ํ์ด์ผํ๋ค
7.
์ ๊ทธ๋ผ ํ๊ธ์ธ์ง ์๋์ง๋ ์ด๋ป๊ฒ ํ๋จํ์ง..........
์
์ซ์์ผ๋ ์์คํค์ฝ๋๊ฐ์ด '0'๋ถํฐ '9'๊น์ง 48~57
์์ด์ผ๋ 'a'~'z', 'A'~'Z' ๊ฐ๊ฐ 97~122, 65~90
๊ทธ๋ผ ํ๊ธ์กฐํฉ๋ ์ผ๋ ฌ๋ก ์ญ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ์๊ฒ ์ง?
"%c%c"๊ฐ ์๋ "%x %x"๋ก ๋๋์ด ์ถ๋ ฅํด๋ณด์๋ค.

...............................?......
8.
์ 16์ง์์ ์ ์ฒด๊ฐ ๋์ฒด ๋ญ์ง ์์๋ด์ผํ๋ค.
ํ๊ธ์ ์ ๋์ฝ๋ ํํ๊ฐ ์์ฑํ๊ณผ ์กฐํฉํ์ผ๋ก ๋๋๋ค๋ ์ฌ์ค์ ์๊ฒ๋์๋ค.
์์ฑํ์ ๋ง๊ทธ๋๋ก ์ฌ์ฉ์๊ฐ ์ด/์ค/์ข
์ฑ์ ๋ค ์
๋ ฅํ์ฌ ๋ง์ง๋ง์ ์์ฑ๋ ๋ฌธ์ ์์ฒด์๊ฒ
๊ฐ ์ฝ๋๊ฐ์ ๋ถ์ฌํ๋๊ฑฐ๊ณ
์กฐํฉํ์ 16๋นํธ์ค ์1๋นํธ๋ ํ๊ธ์ธ์ง ๊ตฌ๋ถํ๋๋ฐ ์ฐ์ด๊ณ
๋๋จธ์ง 15๋นํธ๋ฅผ ๊ฐ๊ฐ 5๋นํธ๋ก ๋๋ ์ด/์ค/์ข
์ฑ์ ๋ํ๋ด์ด ํ๊ธฐํ๋ ๋ฐฉ์
์์ฑํ์ฝ๋๋ ์ด๋ ๊ฒ ๊ธ์์ ์ฝ๋๊ฐ์ ์ผ๋์ผ ๋งค์นญํ๊ธฐ๋๋ฌธ์ ํํํ ์ ์๋ ๊ธ์๊ฐ ํ์ ์ ์ด๋ผ๊ณ ํ๋ค.
์ด๋ฌ์ง๋ง๋ผ๊ณ ์ด์ค์ข
์ฑ์กฐํฉ์ ๋ง๋ ๊ฑด๋ฐ
์๋ง ์ธ์ข
๋์๋์ด ์ง๊ธ ์ฐ๋ฆฌ๊ฐ ํ๊ธ์ ์์ฑํ์ผ๋ก ์จ์๋ค๋๊ฑธ ์์
จ๋ค๋ฉด ํ๋ ์น์ค๊ฒ๊ฐ๋ค.
์๋ฌดํผ ์์ฑํ์ด ๋ฌธ์ ๊ฐ ์๋ค๋ ์ฌ์ค์ ์ด๋ฏธ ์์ฃผ ์ค๋์ค๋์ค๋์ ์ ๋ฐํ์ ธ์
์ง๊ธ์ ๊ทธ๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ๋ ์ ๊ฒ์ฌ์ฉํ๊ณ ๋ณ๊ฒฝ์ด ์ฉ์ดํ ์กฐํฉํ์ ๋ง์ด ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
์๋ฌดํผ ์ FFFFFFFB0 FFFFFFA1์ ์์ฑํ ์ฝ๋์ด๋ค.
์์ฑํ์์๋ "๊ฐ"๋ฅผ 0xB0A1์ผ๋ก ํ๊ธฐํ๋๊ฒ์ด๋ค.
์์ฑํ ํ๋ ์๋๋ธ๋ก๊ทธ์์ ์ฐธ์กฐํ๋ค!
http://kkamagui.tistory.com/234
(xxx0์ xxxF๋ถ๋ถ์ ๋นผ๊ณ ) ์ด๋ฏ๋ก
์ธ๋ฑ์ค[0]๋ฒ์ FFFFFFB0~FFFFFFC8
์ธ๋ฑ์ค[1]๋ฒ์ FFFFFFA1~FFFFFFFE
์ด๋ ๊ฒ ๊ฒ์ฌํด์ ์ด์ธ์ ๊ฒฝ์ฐ ์๋ฌ์ถ๋ ฅ๊ณผํจ๊ป ๋ค์ ์
๋ ฅ๋ฐ์ผ๋ฉด ๋๋ค!!!
9.
์๋ฒฝ๋์๊ฐ ๋์์ผ๋ฏ๋ก
๋งํ ๊ฒฐ๊ณผ์ ํจ๊ป(์์ธ์......๋์ค์....์ฐพ๋๊ฑธ๋ก.............)
ํด๊ฒฐ๋ฐฉ์ ์ฐพ์ ๊ฒ๋ง ์ฌ๋ฆฌ๊ณ ~ํดํผ์๋ฉ~
str[i][0] = getch();
if( str[i][0] >= 0xB0 && str[i][0] <= 0xC8 )
if(str[i][0]<0)
{
str[i][1] = getch();
if(str[i][1] >= 0xA1 && str[i][1] <= 0xFE )
{
printf("%c%c", str[i][0], str[i][1]);
i++;
}
else
{
str[i][0]=0;
str[i][1]=0;
gotoxy(x+10,y+1);
printf("[Error] ํ๊ธ๋ง์
๋ ฅ๊ฐ๋ฅ!");
}
์ด๋ ๊ฒ ์งฐ๋ค๊ฐ ๋งํ๋ค
์์์ ๋ด๊ฐ ๋ด์
์ผ๋ก ์ ๋์ฝ๋๋ ์์๋๊น ์ด๋ฌ์ผ ํ๋ฏ๋๋ฟ!!!! ๋ผ๊ณ ํด๋๊ณธใ
ใ
ใ
ใ
ใ
ใ
ใ
์๋ฌด์๊ฐ์์ด ์์๋ฅผ ๋ฃ๋ ํจ๊ธฐ^*^
๊ทธ๋์ ์์๋ถ๋ถ์ธ <๊ฐ๊ฐ~> ๊ณผ ๋๋ถ๋ถ์ธ <~ํํ>์ด ๊ฐ๊ฐ 10์ง์๋ก ์ด๋ป๊ฒ ์ถ๋ ฅ๋๋์ง
๊ทธ๋ฅ ํ์ธํด์ ๊ทธ ์ซ์๋ก ๋ฃ์๋๋ ์ฑ๊ณตํ๋ฟ

str[i][0] = getch();
if( str[i][0] <= -56 && str[i][0] >= -80 )
if(str[i][0]<0)
{
str[i][1] = getch();
if(str[i][1] <= -2 && str[i][1] >= -95 )
{
printf("%c%c", str[i][0], str[i][1]);
i++;
}
ํ.....................
if๋ฌธ์ ํฅ์ฐ ^*^........
์ฝ๋์ ๋ฌธ์ ๋๊ฒ ์ง์ ๋ถํด์ ๋์ค์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค
์ค๊ฐ๊ณ ์ฌ๊ธฐ๊ฐ์
์์ธ์ฒ๋ฆฌ ํ๋ ํ๋ ค๋ค๊ฐ
์ ๋์ฝ๋์ ์ญ์ฌ๋ฅผ ๊ณต๋ถํ๋ผ.............
'๊ณต๋ถ > C' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํฌ์ธํฐ ๊ณต๋ถ 2 - ์์ (0) | 2013.04.16 |
---|---|
ํฌ์ธํฐ ๊ณต๋ถ์ค1 (0) | 2013.04.14 |
์ ์์ ์๋ฆฟ์ ๊ตฌํ๊ธฐ (0) | 2013.04.09 |
์ฝ์ ์ปค์ ์ ์ด ํจ์๋ค (0) | 2013.04.09 |
2์ง์ โ 10์ง์ ๋ณํ (0) | 2013.03.29 |
- book
- array
- ์์ฑ์ํจ์
- ๋ฐ๋๋ผ์ฝ๋ฉ
- js
- KEYBOARD
- stackoverflow
- eslint
- css
- ๋ถํธ์บ ํ
- Stash
- review
- HTML
- ๋ฐ๋๋ผ์ฝ๋ฉ ํ๊ธฐ
- DOM
- VSC
- GIT
- ์ฝ๋ฉ๋ถํธ์บ ํ
- eventlistener
- string
- Total
- Today
- Yesterday