±×·¸´Ù¸é ½ºÅ©¸³Æ®´Â
¾î¶»°Ô ±¸ÇöÇØ¾ß Çϴ°¡°¡ ¹®Á¦°¡ µÈ´Ù. ½ºÅ©¸³Æ®¶ó´Â
°ÍÀº °ÔÀÓ¿¡ µµ¿òÀ» ÁÖ±â À§ÇÑ ÇϳªÀÇ ¼ö´ÜÀÌÁö¸¸ ±×
ÀÚü°¡ °ÔÀÓ ÇÁ·Î±×·¡¹ÖÀÇ ¸ñÀûÀº ¾Æ´Ï´Ù. µû¶ó¼ ½ºÅ©¸³Æ®ÀÇ
Á߿伺¿¡ µû¶ó¼ ½ºÅ©¸³Æ® ¿£ÁøÀÇ ±¸Çö Á¤µµ´Â ÆÇÀÌÇÏ°Ô
´Þ¶óÁø´Ù. À§¿¡¼ ¿¹¸¦ µç °¡Àå °£´ÜÇÑ ÇüÅÂÀÇ ·ÑÇ÷¹À×
°ÔÀÓÀÇ ½ºÅ©¸³Æ®¸¦ ´Ù½Ã º¸ÀÚ.
1.
½ºÅ©¸³Æ® ±¸Çö ¿¡Á¦
01:
#À̸§: "¿ì¹Î1"
- 02:
#ÃʱâÁÂÇ¥: (10,10)
- 03:
#»ý±è»õ: 10
- 04:
#´ëÈ: "¸¶À»
³²ÂÊÀÇ µ¿±¼¿¡ ¿ëÀÌ »ì°í
ÀÖ´Ù´Â Àü¼³ÀÌ ÀÖ¾î"
|
¿ì¼± ÀÌ°ÍÀº ÅؽºÆ® ÇüÅ·Î
ÀúÀåµÇ¾î ÀÖ´Ù. µû¶ó¼ ¿ì¸®´Â °¢°¢ÀÇ ¶óÀÎ º°·Î
µ¥ÀÌÅ͸¦ °¡Á® ¿Ã ¼ö ÀÖ´Ù. ±×·¸´Ù¸é ±× ´ÙÀ½¿¡´Â
¹®ÀåÀ» ºÐ¸®ÇØ¾ß ÇÑ´Ù. °£´ÜÇÑ ÇüÅÂÀÇ ¹®ÀåÀÌÁö¸¸
º¯¼ö°¡ ÀÖ°í ±× º¯¼ö¿¡ µé¾î°¡´Â Ãʱ⠰ªÀÌ ÀÖ´Ù.
±×¸®°í ±×°ÍµéÀ» ±¸ºÐ¿¡ ÇØÁÖ´Â ±¸ºÐ ±âÈ£°¡ ÀÖ´Ù.
°¡Àå ù ÁÙÀ» º¸ÀÚ. ¿©±â¼
º¯¼ö´Â ¡®À̸§¡¯ÀÌ°í ±× º¯¼öÀÇ Ãʱ⠰ªÀº ¡®¡±¿ì¹Î1¡±ÀÌ´Ù.
»ç¶÷ÀÇ ÀÔÀå¿¡¼ º¸¸é ´«À¸·Î ±× µÎ °¡Áö¸¦ ºÐ¸®Çؼ
nameÀ̶ó´Â º¯¼ö¿¡ ¡°¿ì¹Î1¡±À» ´ëÀÔÇÏ¸é µÇ´Â
°ÍÀÌÁö¸¸ ÄÄÇ»ÅÍÀÇ °æ¿ì¿¡´Â ÆĽÌÀÇ °úÁ¤À» °ÅÃľß
ºñ·Î¼Ò ±×°ÍÀ» ºÐ¸®ÇÒ ¼ö ÀÖ´Ù. º¸¸é ¾Ë°ÚÁö¸¸
º¯¼ö´Â ¿¹¾àµÈ ±âÈ£¿¡ µÑ·¯ ½Î¿© ÀÖ´Ù. ¡°#À̸§:¡±°ú
°°ÀÌ »ç¿ëÀÚ°¡ ¾à¼ÓÇÑ ±âÈ£·Î ½ÃÀÛÇؼ »ç¿ëÀÚ°¡
¾à¼ÓÇÑ ±âÈ£·Î ³¡³´Ù. µû¶ó¼ ¡®#¡¯ÀÌ ½ÃÀÛÇÏ´Â
´ÙÀ½ºÎÅÍ ¡®:¡±À¸·Î ³¡³ª±â Àü±îÁö°¡ º¯¼ö°¡ µÈ´Ù.
(±×¸®°í ±× º¯¼öÀÇ ¾Õ µÚ¿¡ °ø¹é ¹®ÀÚ°¡ ÀÖ´Ù¸é
±×°ÍÀ» Á¦°ÅÇØÁÖ´Â °Í±îÁö°¡ ½ÇÁ¦ °úÁ¤ÀÌ µÉ °ÍÀÌ´Ù.)
±×¸®°í º¯¼ö¸¦ ÀоúÀ¸¸é ±× À§ÀÇ ¸ðµç µ¥ÀÌÅÍ´Â
º¯¼öÀÇ °ªÀ̶ó°í º¼ ¼ö ÀÖ´Ù. ƯÈ÷ ¿©±â¼ ¡®¡±¡¯À¸·Î
µÑ·¯ ½ÎÀÎ °÷Àº ¹®ÀÚ¿À̶ó°í ¾à¼ÓÇÏ¿´À¸¹Ç·Î ¹®ÀÚ¿·Î
Ãë±ÞµÇ¾î ÀúÀåµÈ´Ù. µÎ ¹ø° ÁÙÀÇ °æ¿ì¿¡´Â
°ýÈ£¿¡ µÑ·¯ ½ÎÀÎ ºÎºÐÀº ÁÂÇ¥¸¦ ³ªÅ¸³½´Ù°í ¾à¼ÓÇÏ¿´À¸¹Ç·Î
±×·¸°Ô ÀÐÀ¸¸é µÈ´Ù.
¾Æ·¡ÀÇ ÄÚµå´Â À§¿Í °°Àº ¹®ÀåÀ»
Ç®¾î³»±â À§ÇØ °£·«ÇÏ°Ô ±¸ÇöÇغ» °ÍÀÌ´Ù.
¸ÕÀú ÇÊ¿äÇÑ ±âº» ÇÔ¼öµéÀÌ
ÇÊ¿äÇÏ´Ù. ¹°·Ð CÀÇ ½ºÅÄ´Ùµå ¶óÀ̺귯¸®¸¸À¸·Îµµ
½ºÅ©¸³Æ®¸¦ Àд µ¥´Â ¹®Á¦°¡ ¾ø±ä ÇÏÁö¸¸ ¾Æ¹«·¡µµ
ÀÚÁÖ ¾²ÀÌ´Â ¸î¸î ±â´É¿¡ ´ëÇؼ´Â ¹Ì¸® ÇÔ¼ö·Î
¸¸µé¾î µÎ´Â °ÍÀÌ ÁÁ´Ù. ¸ÕÀú ÀÚ·áÇüÀ» Çϳª ¼±¾ðÇؾß
ÇÑ´Ù.
01:
typedef char STRING[256];
|
ÀÌ°ÍÀº ´Ü¼øÇÏ°Ô Ä³¸¯ÅÍÇü ¹è¿À»
STRINGÀ̶ó´Â À̸§ÀÇ Å¸ÀÔÀ¸·Î ¼±¾ðÇÑ °ÍÀ̸ç ÀÌÈÄÀÇ
¸ðµç ½ºÅ©¸³Æ® ÅؽºÆ®ÀÇ ¶óÀÎÀº ÀÌ ÇüÅ·ΠÀаÔ
µÈ´Ù.
01:
void ReplaceChar(STRING
s, char srcChar, char dstChar)
- 02:
{
- 03:
int
i, len = strlen(s);
- 04:
for
(i = 0; i < len; i++)
- 05:
if
(s[i] == srcChar)
- 06:
s[i]
= dstChar;
- 07:
}
-
|
ÀÌ ÇÔ¼ö´Â s¶ó´Â ½ºÆ®¸µ¿¡ ÀÖ´Â
srcChar¶ó´Â ÇϳªÀÇ ¹®ÀÚ¸¦ dstChar¶ó´Â ¹®ÀÚ·Î
¹Ù²Ù´Â ±â´ÉÀ» ÇÑ´Ù. ÅؽºÆ® ÆÄÀÏ¿¡´Â ¹®ÀÚ ÀÌ¿Ü¿¡
»ç¿ëÀÚ°¡ Á¦¾î ¹®ÀÚ¸¦ »ðÀÔÇÒ ¼ö Àֱ⠶§¹®¿¡ ±×°ÍµéÀ»
Á¦°Å Çϰųª ´ëÄ¡Çϴµ¥ »ç¿ëµÈ´Ù. ÁÖ·Î ÅÇ ¹®ÀÚ
°°ÀÌ °ø¹é ±â´ÉÀ» ÇÏ´Â ¹®ÀÚµéÀ» °ø¹é ¹®ÀÚ·Î ´ëÄ¡ÇÏ¿©
»ç¿ëÇϴµ¥ »ç¿ëµÈ´Ù.
01:
#define COPY_STRING(dest,
sour, offset, length) \
- 02:
do
\
- 03:
{
\
- 04:
int
len = (length); \
- 05:
strncpy(dest,
sour + (offset), len); \
- 06:
dest[len]
= 0; \
- 07:
}
while(0);
-
|
ÀÌ°ÍÀº ¸ÅÅ©·ÎÀ̸ç CÀÇ Ç¥ÁØ
¶óÀ̺귯¸®¿¡ ÀÖ´Â strcpy()ÀÇ ¿ë¹ýÀ» ¾à°£ ¼öÁ¤ÇÑ
°ÍÀÌ´Ù. sour¶ó´Â ½ºÆ®¸µÀÇ offset¹ø°ºÎÅÍ length
¸¸ÅÀÇ ¹®ÀÚ¿À» dest¿¡ º¹»çÇÏ´Â ±â´ÉÀ» ÇÑ´Ù.
ÀÌ°ÍÀº ¾ÕÀ¸·Î ³ª¿Ã ÇÔ¼öÀÇ ±â´ÉÀ» °£·«ÇÏ°Ô º¸ÀÌ°Ô
Çϱâ À§ÇØ »ç¿ëµÇ´Â ¸ÅÅ©·ÎÀÌ´Ù.
01:
void FetchWord(STRING
fetchStr, STRING srcStr,
char separater)
- 02:
{
- 03:
int
divider;
- 04:
char
subStr[2] = {separater,
0};
- 05:
char
*tempStr;
- 06:
- 07:
if
(tempStr = strstr(srcStr,
subStr))
- 08:
{
- 09:
divider
= (tempStr - srcStr) + 1;
- 10:
- 11:
COPY_STRING(fetchStr,
srcStr, 0, divider - 1)
- 12:
COPY_STRING(srcStr,
srcStr, divider, strlen(srcStr)-divider)
- 13:
}
- 14:
else
- 15:
{
- 16:
strcpy(fetchStr,
srcStr);
- 17:
strcpy(srcStr,
"");
- 18:
}
- 19:
}
-
|
ÀÌ°ÍÀº ½ºÅ©¸³Æ®¿¡¼ ¸í·É¾î¸¦
ºÐ¸®Çϰųª ÆĶó¹ÌÅ͸¦ ºÐ¸®Çϱâ À§ÇÑ ±âº» ÇÔ¼öÀÌ´Ù.
srcStrÀ̶ó´Â ½ºÆ®¸µ¿¡¼ separater¶ó´Â ´Ü¾î¸¦
±âÁØÀ¸·Î ¾ÕÂÊÀÇ ¹®ÀÚ¿À» fetchStr¿¡ Áý¾î ³Ö°í
µÚÂÊÀÇ ¹®ÀÚ¿¸¸ srcStr¿¡ µÇµ¹·Á ÁØ´Ù. ¿¹¸¦ µé¾î,
SetValue(10,10); À̶ó´Â ¹®ÀåÀÌ ÀÖÀ» ¶§ ¡®(¡®¸¦
±âÁØÀ¸·Î ¡®SetValue¡¯¶ó´Â ¸í·É¾î¿Í ³ª¸ÓÁö ºÎºÐÀÎ
¡°10,10);¡±À» ºÐ¸®ÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.
01:
typedef enum tagSHURINKMODE
- 02:
{
- 03:
SHURINKMODE_FORWARD,
- 04:
SHURINKMODE_BACKWARD,
- 05:
SHURINKMODE_ALLDIRECTION,
- 06:
SHURINKMODE_ALLCHARACTER
- 07:
} SHURINKMODE;
- 08:
- 09:
void ShurinkString(STRING
s, char ch, SHURINKMODE
mode)
- 10:
{
- 11:
int
i, j,
len;
- 12:
STRING
aux;
- 13:
- 14:
len
= (int)strlen(s);
- 15:
- 16:
switch
(mode)
- 17:
{
- 18:
case
SHURINKMODE_FORWARD:
- 19:
for
(i = 0; (i < len) &&
(s[i] == ch); i++);
- 20:
COPY_STRING(aux,
s, i, strlen(s) - i + 1)
- 21:
break;
- 22:
- 23:
case
SHURINKMODE_BACKWARD:
- 24:
for
(i = len-1; (i > 0) &&
(s[i] == ch); i--);
- 25:
COPY_STRING(aux,
s, 0, i + 1)
- 26:
break;
- 27:
- 28:
case
SHURINKMODE_ALLDIRECTION:
- 29:
for
(i = 0; (i < len) &&
(s[i] == ch); i++);
- 30:
COPY_STRING(aux,
s, i, strlen(s) - i + 1)
- 31:
for
(i = strlen(aux)-1; (i >
0) && (aux[i] ==
ch); i--);
- 32:
COPY_STRING(aux,
aux, 0, i + 1)
- 33:
break;
- 34:
- 35:
case
SHURINKMODE_ALLCHARACTER:
- 36:
int
cantSkip = 0x01;
- 37:
- 38:
//
" ¸¦ º¯°æÇÒ ¶§´Â ¹«Á¶°Ç
º¯°æ
- 39:
if
(ch == '\"')
- 40:
cantSkip
|= 0x02;
- 41:
- 42:
for
(i = 0, j = 0; i < len;
i++)
- 43:
{
- 44:
if
(s[i] == '\"')
- 45:
cantSkip
^= 0x01;
- 46:
- 47:
if
((cantSkip == 0) || (s[i]
!= ch))
- 48:
aux[j++]
= s[i];
- 49:
}
- 50:
aux[j]
= 0;
- 51:
break;
- 52:
}
- 53:
- 54:
strcpy(s,
aux);
- 55:
}
-
|
ÇÔ¼ö Äڵ尡 ¼³¸íÇϱ⿡´Â Á»
±ä ´À³¦ÀÌ ÀÖ´Ù. ±â´ÉÀº s¶ó´Â ½ºÆ®¸µ¿¡¼ ch¶ó´Â
¹®ÀÚ¸¦ modeÀÇ ¹æ¹ý¿¡ µû¶ó Á¦¾îÇÏ´Â ±â´ÉÀ» ÇÑ´Ù.
modeÀÇ
°ª
|
±â´É
|
SHURINKMODE_FORWARD
|
¹®ÀÚ¿ÀÇ ¾ÕÂÊÀÇ
ch¸¦ Á¦°ÅÇÑ´Ù.
|
SHURINKMODE_BACKWARD
|
¹®ÀÚ¿ÀÇ µÚÂÊÀÇ
ch¸¦ Á¦°ÅÇÑ´Ù.
|
SHURINKMODE_ALLDIRECTION
|
¹®ÀÚ¿ÀÇ ¾çÂÊÀÇ
ch¸¦ Á¦°ÅÇÑ´Ù.
|
SHURINKMODE_ALLCHARACTER
|
¹®ÀÚ¿ Àüü¿¡¼
ch¸¦ Á¦°ÅÇÑ´Ù.
|
½ºÅ©¸³Æ®¸¦ ¸¸µå´Â »ç¶÷°ú ÇÁ·Î±×·¡¸Ó°¡
°°Àº »ç¶÷À̶ó¸é ¾à¼Ó¿¡ ÀÇÇØ Á¤È®ÇÏ°Ô ½ºÅ©¸³Æ®
Äڵ带 ÀÛ¼ºÇÒ ¼ö ÀÖÀ»Áöµµ ¸ð¸£°ÚÁö¸¸, ÀϹÝÀûÀ¸·Î´Â
±×·¸Áö°¡ ¾Ê´Â °æ¿ì°¡ ¸¹´Ù. µû¶ó¼ ½ºÅ©¸³Æ® ÀÛ¼ºÇÏ´Â
»ç¶÷ÀÇ ÄÚµå ÀÛ¼º ÃëÇâÀ̳ª ½À°ü°°ÀÌ ¿¹»óÇϱâ
¾î·Á¿î »óȲµéÀÌ ½ºÅ©¸³Æ® Äڵ忡 µé¾î °¥ ¼ö°¡
Àִµ¥ ÀÌ·± °ÍµéÀ» Á¦°ÅÇϱâ À§Çؼ »ç¿ëÇÏ´Â
°ÍÀÌ ¹Ù·Î À§ÀÇ ÇÔ¼öÀÌ´Ù. ƯÈ÷ ½ºÆäÀ̽ºÀÇ ³²¿ëÀ̳ª
°£´ÜÇÑ ¹®¹ýÀÇ ½Ç¼öµéÀ» ´«°¨¾Æ ÁÖ±â À§Çؼµµ
»ç¿ëµÈ´Ù. (¹°·Ð °³¹ß °úÁ¤¿¡¼´Â ¹®¹ý¿¡¼ ½Ç¼ö°¡
ÀÖÀ» ¶§ Á¤È®ÇÏ°Ô Àâ¾Æ ÁÖ´Â °ÍÀÌ ÇÊ¿äÇÏ°ÚÁö¸¸,
ÃÖÁ¾ ¸±¸®Áî ¹öÀü¿¡¼´Â ½ºÅ©¸³Æ® ¿¡·¯ ¶§¹®¿¡
°ÔÀÓÀÌ ¸ØÃß´Â ÀÏÀº ¾ø¾î¾ß ÇϹǷΠ¹®¹ý ½Ç¼ö¿¡
´ëÇؼ °¡Àå ¿¹ÃøÇϱ⠽¬¿î ÂÊÀ¸·Î ½ºÅ©¸³Æ®¸¦
Çؼ®ÇÏ´Â ¹æ¹ý·ÐÀÌ ÇÊ¿äÇÏ´Ù.)
À§ÀÇ ¸ðµâÀ» ÀÌ¿ëÇؼ °¡Àå
óÀ½¿¡ Á¦½ÃÇÑ ½ºÅ©¸³Æ®¸¦ Àд ÇÁ·Î±×·¥Àº ´ÜÇົÀ»
±¸ÀÔÇÏ¸é ºÎ·Ï CD¿¡ ÀÖ´Ù. (¹°·Ð ´ÜÇົÀº ³ª¿ÀÁö
¾ÊÀ» °ÍÀÌ´Ù.)
|