-
식당갔는데 오줌싸고있는데 난 원래 안에 아무도없으면 좀 멀리떨어져서 이참함수 곡선...
-
건대 1학년 1학기 군휴학할건데 수강신청 해야하나요? 아님 걍 수강신청 안하고...
-
누백 계산 0
누백은 계산 어떻게 하는건가요??..
-
1분 ㅇㅈ 12
-
한서삼라인까지 뚫렷다는데 확인된건가 헬린피셜 핵빵은 맞다던데
-
과단톡을 여캐일러저장소로 활용하면서 통매음 위험이 있으므로 수위조절을 하는 것이 핵심 감사합니다
-
본인 sm 6
좋아함..
-
보통 노트에 푸시나요 문제집에 바로 푸시나요
-
고대병원에서. 서울은 이런 것두 주는구나…
-
관독 조교쌤 5
왜케 예쁘시냐 학벌도 좋을텐데
-
환급 뭐 되던데 나중에 연락와요?
-
follow the sound of the beating heart the...
-
등록금 내고 따로 제출해야하는 서류 (졸업증명서) 는 없는거죠? 토욜이라 학교...
-
헤어질때 힘드니까~ 그냥 이대로 친구아닌친구~
-
그냥 닉언도 아니고 친목성 닉언인데 저거 괜찮은 거 맞나
-
저는 좋아하는데 이게 혈액 순환이 안되서 그런가요?
-
으흐흐 4
-
이신혁T 라이브 0
현강생 아닌데 복습영상 제공되나요??
-
이젠 까일일이 전무하겠노..
-
구합니다! 의대진학자/ 수학과 / 논술합격자 환영해요,,
-
약대 수준 다 떨어졌네 14
국어5에가깝게받고약대가는데요??????
-
사상초유의 사태네
-
(서울대 합격 / 합격자인증)(스누라이프) 서울대 25학번을 찾습니다. 0
안녕하세요. 서울대 커뮤니티 SNULife 오픈챗 준비팀입니다. 서울대 25학번...
-
기출에 자주 나온 소재 발상을 다 기억하는건 절대 아니죠? 익숙한거죠..?...
-
얼굴 vs 몸매 7
ㅈㄱㄴ
-
지인한테 말할 수 있음?
-
김현우 현강 0
김현우쌤 대기번호 500번이상이면 언제쯤들어갈 수 있나여
-
전자는 헤어지면 끝이지만 후자는 헤어져도 못잊음
-
내가 잘 적응했을 거라는 생각이 들진 않네
-
원래는 애니본다고 하면 윽 씹덕파오후 해서 못말했다면 요즘은 패션십덕들이 많아져서...
-
은 바로 나
-
재수생 0
대학가면 2학년이 동갑일텐데 대학생활 내내 깍듯이 머리 박아야 하나요?
-
250627 28번 세트 어려운편인가요? 제가 초보라서 어려운거 같긴한데 좀 빡세네요 퓨ㅠ
-
야호호
-
옯만추 후기 6
왜클릳
-
플래너랑 샤프 줄거야 학생들한테
-
아 강등 0
에휴
-
확통 29 30번 하나도 못풀겠음 확통 2등급보다 미적2가 표점 높지않음? 확통...
-
버티는 자가 승리한다 고로 난 승리한다
-
산책이나 런닝할때 경로 지도에 저장해주는 앱 잇음뇨??? 4
워치 없어용
-
의치대 노리는 최상위권은 이제 전략이 딱 세 가지 정도로 나뉘는 것 같음 서울대...
-
고구마떡국
-
댓글이나 쪽지 부탁드려요!! 핵펑크라는 소문이 진짜인가요??
-
콩 콩 0
-
피오르 2025학년도 최상위권 문과 입결 (초판) 10
피오르 컨설팅 팀에서 컨설턴트로 활동하는 Agent K입니다. 올해 입시가 그동안의...
-
이전에 s23 2년 쓰고 곧 계약만료라고 문자왔길래 오늘 s25로 바꿨는데 원래...
-
삭제..
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;
}
실습 예제 모범답안이 이모야이이꼬라지에요 ㅅㅂ