-
지로함 6
평가원에선 잘 모르겟는데 (어렵게 안 내서), N제같은거 보면 되게 재밋는 문제...
-
무슨 이미 의대 붙은 것마냥 의대 성적 되면 의대를 갈까 설대를 갈까? 의대 가면...
-
수강 신청 0
막 20학점씩 신청 해놓고 나중에 빼는 방법 좋나요? 예상대로 안될 때가 많으니...
-
기출 좋앗던거 3
241122 (개 잘 만든문제)121130 (함수의 증가속도, 아주 중요한 관점)...
-
국회증언법이랑 양곡법 이런거 비판하는 내용있으면 너무 그렇지??..
-
아이고남발 딴 건 모르겠는데 진짜 왜 저걸로 저격먹었지
-
롤의정리 4
롤은 재밌다
-
공군 질받 9
암거나 ㄱㄱ
-
잘자용 16
배가 고파져서 블아 ost 158번 그레고리오 피아노 버전을 들으면서 이만 자야겠오요
-
성대바꿔
-
롤할사람 4
모집ㅂ중
-
241122. 5
진짜 딱 삼차함수여서 결정됨. 머지 진짜아주 멋잇음. 출제자랑 대화해보고 시픔
-
비갤에 저격올라오려나?
-
.. 4
작수 2등급인데 29 30 제대로 풀진 못하고요 28번도 웬만하면 못풀고 27풀때쯤...
-
보통 스트레이트는 아니고 자기 일하거나 학교 다니다 간 거 4수 한의(스트레이트)...
-
이게 쇼츠로 밈같은거 대충 볼때는 으음 그렇구나 하고 봣는데,가사 보면서 노래로...
-
왜냐 난 착한 글만 쓰니까.
-
개인적으로 애정가는 오르비언들은 내가 자기들 좋아하는 거 다 알 듯!!!
-
심심한 4
좋은 닉네임임
-
노래 추천 0
가사가 힘들 때마다 위로가 돼서 매일 찾아들음 닉값 ㅋㅋ
-
으하하하
-
아직도 볼 씹음 엄청 깊어서 운동도못함
-
.
-
오르비 안녕히주무세요 19
피곤해서 자러감니다 ㅠㅠ
-
형님이라고 부를까 생각중임
-
추합이라 가입을 못해서.. 시간표 짜는데만 사용하고 사례도 할게요..
-
방금 땡잡았다 0
콜드플레이 막콘 취소표 건짐
-
내에플팬슬 이거20만원짜린데 후
-
스레기야
-
한양대가 냥대인 이유 11
.
-
저는 남자로써 4
누구 한명 싫어도 비갤이 아닌 여기서 저격을 하고 잘풀리면 wwe 안풀려도 ufc를 열겠습니다 선서
-
집에서 지원을 안해주신다 하셔서 자비로 반수했는데, 수시로 온 곳 정시로 올 성적이...
-
아아악
-
어떤 사람이 닉 추천 글에 댓글로 자기 전 닉네임 추천함
-
6학점듣고 반수하려하다 망해서 엇복학하고 재도전합니다 0
질문 받아요
-
추가모집도 추합이 있는지 아니면 최초합밖에 없는지 궁금하네요..
-
귀엽다는거임
-
ㅠㅠㅠ
-
수2 자작문제 0
나중에 교사가 되면 어떻게 서술형을 만들까 생각하면서 만들어 보았습니다. 풀이 과정...
-
무기한 휴르비 1
-
동국대 3
저도 유사 대학생 쌩재수 친구 없나용
-
시대 재종 0
대치에서 목동관으로 옮길 수 있나요? 그냥 나갔다가 다시 목동으로 원서 넣으면...
-
비슷한가요?
-
냥대 크아아아악 6
크오아오아앙
-
개빡치네
-
이미지 배출할게요 27
뭔가 모험적인거 좋아할 것 같다 항상 자기할건 다 해놓고 놀러가는 스타일?...
-
뭔가 자주본 옯창들중에 20
맞팔안된사람이 많네
-
흠.....아닌가? 아니다
C++은 객체지향적 언어이다.
C도 몯헤먹겓는데 플러스 두개 더 붙은건 더 어렵겓죠 야발
꼭 생겨먹은게 내 핟점갇내요 ㅠㅅ ㅠ
앋 ㅠㅠ 저는 경정시에서 암기만하면돼서 몰라욥><
졷보는 구헫는대 널마나 똑같이 나올지 모르겓워요
할뚜이따할뚜이따!!
str함수는 텍스트로 보기 때문에 연산할 수 없다
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#define MAX_STR 1024
#define MAX_WORD 100
enum { FALSE, TRUE };
enum { ALPHABET, NUMBER, OPERATOR, OTHER };
typedef struct struct_word {
int type;
char str[MAX_STR];
} Sword;
int isAlphabets(char *str)
{
if (!str || strcmp(str, "") == 0) return FALSE;
for (; *str; str++) {
if (!(isalpha(*str))) return FALSE;
}
return TRUE;
}
int isNumbers(char *str)
{
int num_digits = 0, num_dots = 0;
if (!str || strcmp(str, "") == 0) return FALSE;
// first charactor could be + or -
if (*str == '+' || *str == '-') str++;
for (; *str; str++) {
if (isdigit(*str)) {
num_digits++;
}
else if (*str == '.') {
num_dots++;
}
else return FALSE;
}
return (num_digits > 0 && num_dots < 2);
}
int isOperators(char *str)
{
char operators[] = "+-*/^";
if (!str || strcmp(str, "") == 0) return FALSE;
for (; *str; str++) {
if (!strchr(operators, *str)) return FALSE;
}
return TRUE;
}
int getType(char *str)
{
if (isAlphabets(str)) return ALPHABET;
else if (isNumbers(str)) return NUMBER;
else if (isOperators(str)) return OPERATOR;
return OTHER;
}
char *getTypeString(int type)
{
switch (type) {
case ALPHABET:
return "Alphabets";
break;
case NUMBER:
return "Numbers";
break;
case OPERATOR:
return "Operators";
break;
default:
return "Others";
break;
}
}
void addWord(char *aword, Sword *words, int *nwords)
{
if (!aword || strcmp(aword, "") == 0) return;
if (!words || !nwords) return;
words[*nwords].type = getType(aword);
strncpy(words[(*nwords)++].str, aword, MAX_STR);
}
void printWords(Sword *words, int nwords)
{
int i;
for (i = 0; i<nwords; i++) {
printf("[%d] %s (%s)\n", i + 1, words[i].str, getTypeString(words[i].type));
}
}
void toLowerStr(char *low_str, char *org_str)
{
for (; *org_str; org_str++, low_str++) {
*low_str = tolower(*org_str);
}
}
void parse_strtok(Sword *words, int max_nwords, int *nwords, char *delimiters)
{
char buf[MAX_STR];
char *pword = 0;
int num_words = 0;
num_words = 0;
while (fgets(buf, MAX_STR, stdin)) {
if (!buf) continue;
pword = strtok(buf, delimiters);
while (pword) {
addWord(pword, words, &num_words);
pword = strtok(NULL, delimiters);
}
}
*nwords = num_words;
}
// strtok_s in Windows, strtok_r in Linux
void parse_strtok_r(Sword *words, int max_nwords, int *nwords, char *delimiters)
{
char buf[MAX_STR];
char *saveptr = 0;
char *pword = 0;
int num_words = 0;
num_words = 0;
while (fgets(buf, MAX_STR, stdin)) {
if (!buf) continue;
pword = strtok_s(buf, delimiters, &saveptr);
while (pword) {
addWord(pword, words, &num_words);
pword = strtok_s(NULL, delimiters, &saveptr);
}
}
*nwords = num_words;
}
int main(void)
{
Sword words[MAX_WORD];
char delimiters[] = " \t\n";
int num_words = 0;
// call parse_strtok or parse_strtok_r
parse_strtok(words, MAX_WORD, &num_words, delimiters);
printWords(words, num_words);
return 0;
}
실습 예제 모범답안이 이모야이이꼬라지에요 ㅅㅂ