view c/regexParser/word.cc @ 118:31b0ba0050fa testcode

text
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Thu, 26 Nov 2015 17:19:00 +0900
parents c/regexParser/word.c@166136236891
children 5d29b6a1b50f
line wrap: on
line source

#include <ctype.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "word.h"

WordPtr getWord(unsigned char *string) {

    WordPtr w = (WordPtr)malloc(sizeof(Word));

    int i = 0;
    while (isalnum(string[i])) {
        i++;
    }

    int allocateWordSize, wordLength;

    unsigned char *word = NULL;
    if (string[i] == '*') {
        wordLength = i-1;
        allocateWordSize = i;
        word = (unsigned char*)malloc(sizeof(unsigned char)*allocateWordSize);
        strncpy((char*)word, (char*)string, allocateWordSize);
        word[allocateWordSize-1] = '\0';
    } else {
        wordLength = i;
        allocateWordSize = i+1;
        word = (unsigned char*)malloc(sizeof(unsigned char)*allocateWordSize);
        strncpy((char*)word, (char*)string, allocateWordSize);
        word[allocateWordSize] = '\0';
    }

    w->word = word;
    w->length = wordLength;
    return w;
}