ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
C·Î JavaÀÇ String ±¸Çö. ±¸Á¶Ã¼¿Í ÇÔ¼öÆ÷ÀÎÅ͸¦ ÀÌ¿ë.
#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À» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|