#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _symbol symbol;
typedef struct _symbol *psym;
struct _symbol {
char name[30];
int count;
psym next;
};
psym makeSymbol(char *name) {
psym s;
s=(psym)malloc(sizeof(symbol));
strcpy(s->name, name);
s->count=1;
s->next=NULL;
return s;
}
void insert(psym list, char *name) {
psym s=list;
while(s) {
if(strcmp(s->name,name)==0) {
s->count++;
return;
}
if(s->next) s=s->next;
else break;
}
s->next=makeSymbol(name);
}
void printList(psym list) {
psym s=list->next;
while(s) {
printf("%s %d\n", s->name, s->count);
s=s->next;
}
}
int main(void) {
psym head=makeSymbol(""); // 더미 symbol을 가지고 있슴
char *token;
char s[100];
char seps[] = " ,\t\n";
int i, j;
printf("텍스트를 입력하시오. : ");
gets(s);
token = strtok(s, seps);
while(token!=NULL) {
insert(head, token);
token = strtok(NULL, seps);
}
printList(head);
return 0;
}
'c·c++ > c 프로그래밍' 카테고리의 다른 글
정수의 비트표현, 정순과 역순 (0) | 2012.06.16 |
---|---|
소수점이 포함된 큰수의 덧셈 뺄셈 (0) | 2012.06.16 |
약수, 공약수, 최대공약수, 최소공배수 (0) | 2012.06.14 |
중복된 단어 지우기 (0) | 2012.06.14 |
strdup 활용하기 (0) | 2012.06.13 |