changeset 113:ffef79514d3c pairPro

add getWord
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Mon, 23 Nov 2015 17:49:11 +0900
parents ec485345daf9
children c82e7a7ef8d9
files c/getWord/Makefile c/getWord/main.c c/getWord/word.c
diffstat 3 files changed, 67 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /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)"
--- /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 <stdio.h>
+#include <string.h>
+
+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;
+}
--- /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 <ctype.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+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;
+}