C·Î °´Ã¼ÁöÇâ
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

C·Î JavaÀÇ String ±¸Çö. ±¸Á¶Ã¼¿Í ÇÔ¼öÆ÷ÀÎÅ͸¦ ÀÌ¿ë.

  1. ±×·¯³ª °¡µ¶¼º, »ý»ê¼º, Type safety, µ¿Àû ŸÀÔÁö¿ø °ú °°Àº ÀåÁ¡À» Æ÷±âÇϰí C·Î °´Ã¼ÁöÇâÀ» ÇØ¾ß Çϴ°¡¶ó´Â °Í¿¡ ´ëÇØ¼­´Â °¢ÀÚ ¾Ë¾Æ¼­..
  2. ÀÌ»óÇÏ°Ô ²¿¾Æ¼­ ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ã´À´Ï, ½±°Ô ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ã´Â°Í Ãßõ.
#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 
 
#define JOB_LEN 1 
#define JOB_EQU 2 
#define JOB_IND 3 
 
typedef struct _fun_class{ 
      char *string; 
      int job; 
      int (*length)(struct _fun_class *); 
      int (*equals)(struct _fun_class *, char*); 
      int (*indexOf)(struct _fun_class *, char*); 
      int (*whichJob)(struct _fun_class *, char*, int); 
}_fun_class; 
  
 
int length(_fun_class *me) 
{ 
   if(me->string) 
      return strlen(me->string); 
 
   return 0; 
} 
 
int equals(_fun_class *me, char *tgt) 
{ 
   if(me->string){ 
      return (strcmp(me->string, tgt))?0:1; 
   } 
   return 0; 
} 
 
int indexOf(_fun_class *me, char *tgt) 
{ 
   if(me->string){ 
      char *p; 
      p = strstr(me->string, tgt); 
      if(p){ 
  return (p-(me->string)); 
      }else{ 
  return -1; 
      } 
 
   } 
   return -1; 
} 
 
  
 
int whichJob(struct _fun_class *me, char*str, int job) 
{ 
   if(job == JOB_LEN){ 
      return me->length(me); 
   }else if(job == JOB_EQU){ 
      return me->equals(me, str); 
   }else if(job == JOB_IND){ 
      return me->indexOf(me, str); 
   } /* if(job == JOB_LEN){ */ 
 
   return 0; 
} 
 
_fun_class *my_new_string(char *str) 
{ 
   _fun_class *myString; 
 
   myString = (_fun_class *)malloc(sizeof(_fun_class)); 
 
   myString->length = length; 
   myString->equals = equals; 
   myString->indexOf = indexOf; 
   myString->whichJob = whichJob; 
   myString->job = 0; 
   
   if(str){ 
      myString->string = strdup(str); 
   }else{ 
      myString->string = NULL; 
   }      
} 
 
 
void my_delete_string(_fun_class *myString) 
{ 
   if(myString->string) free(myString->string); 
   if(myString) free(myString); 
} 
 
  
 
int main() 
{ 
   _fun_class *myString = NULL; 
 
   myString = my_new_string("¾Æ¹öÁö°¡ ¹æ¿¡ µé¾î °¡½Å´Ù."); 
 
   printf("str : %s\n", myString->string); 
   printf("length : %d\n", myString->length(myString)); 
   printf("equals : %d\n", myString->equals(myString, "¾Æ¹öÁö")); 
   printf("equals : %d\n", myString->equals(myString, "¾Æ¹öÁö°¡ ¹æ¿¡ µé¾î °¡½Å´Ù.")); 
   printf("indexOf : %d\n", myString->indexOf(myString, "¹æ¿¡")); 
   printf("indexOf : %d\n", myString->indexOf(myString, "°¡½Å")); 
 
 
   printf("JOB_LEN : %d\n", myString->whichJob(myString, "°¡¹æ", JOB_LEN)); 
   printf("JOB_EQU : %d\n", myString->whichJob(myString, "°¡¹æ", JOB_EQU)); 
   printf("JOB_IND : %d\n", myString->whichJob(myString, "°¡¹æ", JOB_IND)); 
 
   my_delete_string(myString); 
} 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.