"C언어 단어 추출"의 두 판 사이의 차이

(같은 사용자의 중간 판 5개는 보이지 않습니다)
7번째 줄: 7번째 줄:
#define NUMBER_OF_STRINGS 200
#define NUMBER_OF_STRINGS 200


int main () {
int main() {
     char *words[NUMBER_OF_STRINGS];
     char *words[NUMBER_OF_STRINGS];
     char seps[] = "[]'`_*?0123456789()\",.! -:;/\t\n";
     char seps[] = "[]'`_*?0123456789()\",.! -:;/\t\n";
   
     char str[] = "  'Hello\tWorld!'  Foo\nBar  ";
     char str[80] = "  'Hello\tWorld!'  Foo\nBar  ";


     int count = 0;
     int count = 0;
24번째 줄: 23번째 줄:
      
      
     for(int i=0; i<count; i++) {
     for(int i=0; i<count; i++) {
         printf("[%d] %s\n", i, words[i]);
         printf("%d: [%s]\n", i, words[i]);
     }
     }
    // [0] Hello
 
    // [1] World
    // [2] Foo
    // [3] Bar 
   return 0;
   return 0;
}
}
// 0: [Hello]
// 1: [World]
// 2: [Foo]
// 3: [Bar]
</source>
</source>


39번째 줄: 39번째 줄:
* [[C언어 strcpy()]]
* [[C언어 strcpy()]]
* [[C언어 문자열 배열]]
* [[C언어 문자열 배열]]
* [[함수 explode_with_whitespaces()]]


[[분류: C]]
[[분류: C]]
[[분류: stdio.h]]
[[분류: stdio.h]]
[[분류: string.h]]
[[분류: string.h]]
[[분류: stdlib.h]]

2017년 11월 24일 (금) 00:30 판

1 개요

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define NUMBER_OF_STRINGS 200

int main() {
    char *words[NUMBER_OF_STRINGS];
    char seps[] = "[]'`_*?0123456789()\",.! -:;/\t\n";
    char str[] = "  'Hello\tWorld!'  Foo\nBar  ";

    int count = 0;
    char *token;
    token = strtok(str, seps);
    while( token != NULL ) {
        words[count] = malloc(strlen(token)+1);
        strcpy( words[count], token );
        count++;
        token = strtok(NULL, seps);
    }
    
    for(int i=0; i<count; i++) {
        printf("%d: [%s]\n", i, words[i]);
    }

   return 0;
}
// 0: [Hello]
// 1: [World]
// 2: [Foo]
// 3: [Bar]

2 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}