# HG changeset patch # User Masataka Kohagura # Date 1448268551 -32400 # Node ID ffef79514d3c91e322e76041ed7e71f36d09b078 # Parent ec485345daf90a42bd3b76d1e50a41f3b3d31f81 add getWord diff -r ec485345daf9 -r ffef79514d3c c/getWord/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c/getWord/Makefile Mon Nov 23 17:49:11 2015 +0900 @@ -0,0 +1,30 @@ +TARGET= getWord +CFLAGS= -Wall -O0 -g +CC= clang + +SRCS_TMP = $(wildcard *.c) +SRCS_EXCLUDE = # 除外するファイルを書く +SRCS = $(filter-out $(SRCS_EXCLUDE),$(SRCS_TMP)) +OBJS = $(SRCS:.c=.o) + +.SUFFIXES: .c .o + +.c.o: + $(CC) $(CFLAGS) -c $< -o $@ + +all: $(TARGET) + +$(TARGET):$(OBJS) + $(CC) -o $@ $(OBJS) + +link: + $(CC) -o $(TARGET) $(OBJS) $(TASK_OBJS) $(LIBS) + +clean: + rm -f $(TARGET) $(OBJS) + rm -f *~ \#* + +test: + ./$(TARGET) -w "test" + ./$(TARGET) -w "test)" + ./$(TARGET) -w "(test)" diff -r ec485345daf9 -r ffef79514d3c c/getWord/main.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c/getWord/main.c Mon Nov 23 17:49:11 2015 +0900 @@ -0,0 +1,20 @@ +#include +#include + +extern unsigned char* getWord(unsigned char*); + +int main(int argc, char **argv) +{ + unsigned char *string; + for (int i = 1; i < argc; i++) { + if (strcmp(argv[i],"-w") == 0) { + string = (unsigned char*)argv[i+1]; i++; + } + } + + printf("input : %s\n",string); + unsigned char *word = getWord(string); + printf("word : %s\n",word); + + return 0; +} diff -r ec485345daf9 -r ffef79514d3c c/getWord/word.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c/getWord/word.c Mon Nov 23 17:49:11 2015 +0900 @@ -0,0 +1,17 @@ +#include +#include +#include +#include + +unsigned char* getWord(unsigned char *string) { + int wordSize = 0; + while (isalnum(string[wordSize])) { + wordSize++; + } + + int allocateWordSize = wordSize + 1; + unsigned char *word = (unsigned char*)malloc(sizeof(unsigned char)*allocateWordSize); + strncpy((char*)word, (char*)string, allocateWordSize); + word[wordSize] = '\0'; + return word; +}