´ÙÀ½
ÀÌÀü
Â÷·Ê
'mychar class' ´Â char ¿Í char * datatypeÀÇ ¿Ïº®ÇÑ ´ëü¹°ÀÌ´Ù. ¿©·¯ºÐÀº
'mychar class' ¸¦ char¾²´Â °Í°ú ¶È°°Àº ¾²¸é¼ ´õ ¸¹Àº ±â´É¼ºÀ» ¾òÀ» ¼ö
ÀÖ´Ù. ¿©·¯ºÐÀº 'libmychar.a' ¸¦ includeÇØ¾ß ÇÏ°í library ¸¦ "C++"
libraryµéÀÌ À§Ä¡ÇÑ /usr/lib directory¿¡ Ä«ÇÇÇؾßÇÑ´Ù ('libmychar.a'´Â
Appendix H¿¡ ÀÖ´Â makefile¿¡¼ ¸¸µé ¼ö ÀÖ´Ù
). 'libmychar.a'À» »ç¿ëÇϱâ â
À§Çؼ´Â ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥À» ´ÙÀ½°ú °°ÀÌ ÄÄÆÄÀÏÇϽÿÀ.
g++ example.cpp -lmychar
´ÙÀ½ »ùÇÃÄڵ带 º¸½Ã¿À.
mychar aa;
aa = " Washington DC is the capital of USA ";
// You can use aa.val like a 'char *' variable in programs !!
for (unsigned long tmpii = 0; tmpii < aa.length(); tmpii++)
{
fprintf(stdout, "aa.val[%ld]=%c ", tmpii, aa.val[tmpii]);
}
// Using pointers on 'char *' val ...
// Note: You must use a temporary local variable and assign the
// pointer to aa.val. If you directly use aa.val and when
// aa.val is incremented with aa.val++, then aa will go
// call destructor and later when aa.val is accessed that
// will cause core dump !!
for (char *tmpcc = aa.val; *tmpcc != 0; tmpcc++)
{
// MUST use temporary variable tmpcc !! See note above.
fprintf(stdout, "aa.val=%c ", *tmpcc);
}
mychar class ¸¦ Á¤ÀÇÇÑ ¿ÏÀüÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ "example_mychar.cpp" Àº
Appendix A¿¡ ÀÖ°í mychar class ´Â
Appendix B¿¡ ÀÖ´Ù.
'mychar class'´Â ´ÙÀ½°ú °°Àº ¿¬»êÀÚµéÀ» Á¦°øÇÑ´Ù.
- Equal to ==
- Not equal to !=
- Assignment =
- Add to itself and Assignment +=
- String concatenation or addition +
¿¬»êÀÚµéÀ» »ç¿ëÇÑ ¿¹Á¦
mychar aa;
mychar bb("Bill Clinton");
aa = "put some value string"; // assignment operator
aa += "add some more"; // Add to itself and assign operator
aa = "My name is" + " Alavoor Vasudevan "; // string cat operator
if (bb == "Bill Clinton") // boolean equal to operator
cout << "bb is eqaul to 'Bill Clinton' " << endl;
if (bb != "Al Gore") // boolean 'not equal' to operator
cout << "bb is not equal to 'Al Gore'" << endl;
'mychar class'´Â ´ÙÀ½°í °°Àº ÇÔ¼öµéÀ» Á¦°øÇÑ´Ù.
- ÇöÀç ¹®ÀÚ¿ ±æÀÌ length()
- ¹®ÀÚ¿ ¿ÞÂÊ À߶󳻱â. óÀ½¿¡ ³ª¿À´Â °ø¹é-»õÁÙ, ÅÜ-Á¦°ÅÇϱâ ltrim()
- ¹®ÀÚ¿ ¿À¸¥ÂÊ À߶󳻱â. µû¶ó³ª¿À´Â °ø¹é-»õÁÙ, ÅÜ- Á¦°ÅÇϱâ rtrim()
- óÀ½°ú ³ªÁß¿¡ ³ª¿À´Â °ø¹é Á¦°ÅÇϱâ trim()
- µû¶ó³ª¿À´Â »õÁÙ Á¦°ÅÇϱâ chop()
- ¹®ÀÚ¿À» ´ë¹®ÀÚ·Î ¹Ù²Ù±â to_upper()
- ¹®ÀÚ¿À» ¼Ò¹®ÀÚ·Î ¹Ù²Ù±â to_lower()
- ½Ç¼ö°ªµéÀ» ¹Ý¿Ã¸²Çϰųª ³»¸²Çϱâ roundf(float input_val, short
precision)
- double°ªµéÀ» ¹Ý¿Ã¸²Çϰųª ³»¸²Çϱâ roundd(double
input_val, short precision)
- startÀ§Ä¡¿¡¼ºÎÅÍ ¹®ÀÚ¿ substr°ú ÀÏÄ¡ÇÏ´Â À§Ä¡ ã¾ÆÁÖ±â
pos(char *substr, unsigned long start)
- Explodes the string and returns the list in the list-head
pointer explodeH explode(char *seperator)
- Implodes the strings in the list-head pointer explodeH and
returns the mychar variable implode(char *glue)
- ¸®½ºÆ® Çìµå Æ÷ÀÎÅÍ explodeHÀÇ ¹®ÀÚ¿À» ºÙÀÌ°í mychar º¯¼ö¹Ýȯ
join(char *glue)
- ÀÔ·Â ¹®ÀÚ¿À» n¹ø ¹Ýº¹ repeat(char *input, unsigned int
multiplier)
- ¹®ÀÚ¿ÀÇ ±ÛÀÚ¸¦ ¿ª¼øÀ¸·Îreverse()
- ¹®ÀÚ¿ ¡®needle¡¯À» °ÇÃÊ´õ¹Ì ¡®val¡¯¿¡¼ ã¾Æ ¡®str¡¯·Î ¹Ù²Ù±â
replace(char *needle, char *str)
- Char¸¦ ¹ø¿ª str_tr(char *from, char *to)
- ÅؽºÆ® ¹®ÀÚ¿À» Áß¾Ó¿¡ center(int length, char padchar =
'')
- ¿ø·¡ ¹®ÀÚ¿ÀÇ °ø¹é¹®ÀÚ¸¦ ¡®number¡¯°³ÀÇ ¡®padchar¡¯·Î ¹Ù²Ù¾î
ÁØ´Ù. ¸Ç ¾Õ°ú µÚÀÇ °ø¹éÀº Ç×»ó Á¦°ÅµÈ´Ù. ¸¸¾à ¡®number¡¯°¡ ¾ø°Å³ª 0À̸é,
¹®ÀÚ¿ ¾ÈÀÇ ¸ðµç °ø¹éÀÌ Á¦°ÅµÈ´Ù.¡®number¡¯ÀÇ ±âº»°ªÀº 0ÀÌ°í
¡®padchar¡¯ÀÇ ±âº»°ªÀº ¡®¡¯. space(int number = 0, char padchar = '
')
- ¡®start¡¯¿Í ¡¯end¡¯¸¦ Æ÷ÇÔÇÑ ¸ðµç ¹®ÀÚµé·Î ÀÌ·ç¾îÁø ¹®ÀÚ¿
¹Ýȯ xrange(char start, char end)
- ¡®list¡¯¿¡ µé¾î ÀÖ´Â ¸ðµç ¹®ÀÚ Á¦°Å. ¡®list¡¯ÀÇ ±âº»¹®ÀÚ´Â °ø¹é¹®ÀÚ
¡® ¡¯ compress(char *list)
- ¡®start¡¯ À§Ä¡¿¡¼ºÎÅÍ ¡®length¡¯°³ ¹®ÀÚ¸¦ ¹®ÀÚ¿¿¡¼ Á¦°Å. ¸¸¾à
¡®statr¡¯°¡ ¹®ÀÚ¿ ±æÀ̺¸´Ù ´õ ±æ¸é ¹®ÀÚ¿Àº º¯ÇÏÁö ¾Ê´Â´Ù. delstr(int
start, int length)
- ¡®start¡¯¿¡¼ ºÎÅÍ ¡®newstr¡¯¸¦ val¿¡ »ðÀÔÇÑ´Ù. ¡®newstr¡¯Àº
¡®length¡¯°³ ¹®ÀÚ·Î ¸ÂÃçÁø´Ù. ±âº» ¡®length¡¯´Â newstrÀÇ ¹®ÀÚ¿
±æÀÌ insert(char *newstr, int start = 0, int length = 0, char padchar
= ')
- Val¾ÈÀÇ °¡Àå ¿ÞÂÊ¿¡ ÀÖ´Â ¡®length¡¯°³ÀÇ ¹®ÀÚ¿À» ¹Ýȯ. ¹®ÀÚ¿ ¿ÞÂÊ
ÁÙ¸ÂÃ߱⿡ ºü¸¥ ¹æ¹ý left(int length = 0, char padchar = ' ')
- Val¾ÈÀÇ °¡Àå ¿À¸¥ÂÊ¿¡ ÀÖ´Â ¡®length¡¯°³ÀÇ ¹®ÀÚ¿À» ¹Ýȯ. ¹®ÀÚ¿
¿À¸¥ÂÊ ÁÙ¸ÂÃ߱⿡ ºü¸¥ ¹æ¹ý right(int length = 0, char padchar = '
')
- ¡®newstr¡¯°¡ val¾È¿¡ ¡®start¡¯¿¡¼ ºÎÅÍ µ¤¾î ¾º¿©Áø´Ù. ¡®newstr¡¯Àº
¡®length¡¯°³ÀÇ ¹®ÀÚ·Î ¸ÂÃçÁø´Ù. ±âº» ¡®length¡¯Àº newstrÀÇ
±æÀÌ overlay(char *newstr, int start = 0, int length = 0, char padchar
= ' ')
- ¹®ÀÚ¿Áß ºÎºÐÀÇ »©³½´Ù. substr(int start, int length = 0)
- regx¶û óÀ½ ÀÏÄ¡ÇÏ´Â °÷À» ã´Â´Ù. at(char *regx)
- Regx¾ÕÀÇ ¹®ÀÚ¿À» ¹Ýȯ before(char *regx)
- RegxeµÚÀÇ ¹®ÀÚ¿À» ¹Ýȯ after(char *regx)
- ¹®ÀÚ¿ÀÌ NULLÀ̸é Âü°ª ¹Ýȯ isnull()
- ¹®ÀÚ¿À» NULL·Î clear()
±âŸ mychar ÇÔ¼öµéÀ» ¿©±â¿¡ ¸ð¾ÆµÎ¾ú´Ù. ÇÏÁö¸¸ À̰͵éÀ» »ç¿ëÇÏÁö´Â ¸¶¶ó.
´ë½Å '+', '+=', '==' µî°ú °°Àº ¿¬»êÀÚµéÀ» »ç¿ëÇ϶ó. À̰͵éÀº 'mychar'
class 'private'¸â¹öµéÀÌ´Ù.
- Copy string str_cpy(char *bb)
- Long integer converted to string str_cpy(unsigned long bb)
- Integer converted to string str_cpy(int bb)
- Float converted to string str_cpy(float bb)
- String concatenate a char * str_cat(char *bb)
- String concatenate a int str_cat(int bb)
- String concatenate a int str_cat(unsigned long bb)
- String concatenate a float str_cat(float bb)
- Is equal to mychar ? bool equalto(const mychar & rhs, bool type = false)
- Is equal to char* ? bool equalto(const char *rhs, bool type = false)
¿¹¸¦ µé¾î Á¤¼ö¸¦ ¹®ÀÚ¿·Î ¹Ù²Ù±â À§Çؼ´Â ´ÙÀ½°ú °°ÀÌ Ç϶ó.
mychar aa;
aa = 34; //¿¬»êÀÚ ¡®=¡¯ ´Â int À» string ·Î ¹Ù²Û´Ù.
cout << "The value of aa is : " << aa.val << endl;
aa = 234.878; // ¿¬»êÀÚ '=' ´Â float À» string·Î ¹Ù²Û´Ù.
cout << "The value of aa is : " << aa.val << endl;
aa = 34 + 234.878;
cout << "The value of aa is : " << aa.val << endl;
// aa ´Â '268.878' ·Î µÈ´Ù.
// mychar¸¦ cast ÇØ¾ß ÇÑ´Ù.
aa = (mychar) 34 + " Honourable President Ronald Reagan " + 234.878;
cout << "The value of aa is : " << aa.val << endl;
// '34 Honourable President Ronald Reagan 234.878' ·Î Ãâ·ÂµÈ´Ù.
´ÙÀ½
ÀÌÀü
Â÷·Ê