Á¶°¢ÄÚµå : ¹®ÀÚ¿­ ÀÚ¸£´Â ÇÔ¼ö
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : Code>C>explode



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

¼³¸í

explode, split µîÀ¸·Î ÀÌ¹Ì ³Î¸® ¾²À̰í ÀÖ´Â ÇÔ¼ö

±¸ºÐÀÚ·Î ¹®ÀÚ¿­À» Àß¶ó 2Â÷¿ø ¹è¿­¿¡ ´ã´Â´Ù.
char **explode( char* str, char *need, int *count ); 
 
  • char *str: ¿øº» ¹®ÀÚ¿­
  • char *need: ±¸ºÐÀÚ ¹®ÀÚ¿­
  • int *count: ¸®Å쵃 ¹è¿­ÀÇ ¼ýÀÚ (È£ÃâÇÒ ÇÔ¼ö¿¡¼­ Á¤ÀÇµÈ ÈÄ ÂüÁ¶Çؼ­ ³Ñ±ä´Ù)
  • ¸®ÅÏµÈ ¹®ÀÚ¿­ ¹è¿­Àº free ÇØÁà¾ß ÇÕ´Ï´Ù

»ç¿ë¹æ¹ý

#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
 
char **explode( char* str, char *need, int *count ); 
 
int main( int argc, char **argv ) 
{ 
    char **str; 
    int count; 
    char tmp[1024] = "GET / HTTP/1.1\nHost: www.joinc.co.kr\n\n"; 
    int i; 
 
    str = explode( tmp, "\n", &count ); 
 
    for ( i=0; i < count; i++ ) 
        printf( "%d: %s\n", i, str[i] ); 
 
 
    free( str[0] ); 
    free( str ); 
} 
 

ÄÚµå

#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
 
char **explode( char* str, char *need, int *count ) 
{ 
    int str_len; 
    char **ret; 
    char *cpy; 
    char *tmp; 
    int tmp_len = 0; 
    int i; 
 
    if ( str == (char *) 0 ) 
    { 
        (*count) = 0; 
        return (char **) 0; 
    } 
 
    str_len = strlen( str ); 
    if ( str_len == 0 ) 
    { 
        (*count) = 0; 
        return (char **) 0; 
    } 
 
    (*count) = 1; 
 
    cpy = (char *) malloc( sizeof( char ) * str_len ); 
    cpy = strncpy( cpy, str, str_len ); 
    tmp = cpy; 
 
 
    while ( 1 ) 
    { 
        tmp=strstr( tmp, need ); 
        if ( tmp == (char *) 0) 
            break; 
        tmp[0] = '\0'; 
        tmp++; 
        (*count)++; 
    } 
 
    ret = (char **) malloc( sizeof( char * ) * (*count) ); 
 
    for ( i=0; i < (*count); i++ ) 
    { 
        ret[i] = &cpy[ tmp_len ]; 
        if ( ret[i] == (char *) 0 ) 
            tmp_len += 1; 
        else 
            tmp_len += strlen( ret[i] ) + 1; 
    } 
 
    return ret; 
} 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.