오르비
태그
눅눅이(난 탈모 아님ㅎ) [879821] · MS 2019 · 쪽지
게시글 주소: https://orbi.kr/00025037623
스트링은 짅자 몯헤먹겓다
개어렵네
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
쪽지 보내기
알림
스크랩
신고
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; }
실습 예제 모범답안이 이모야이이꼬라지에요 ㅅㅂ
과학고 조기졸업, 고려대 이학사 졸업 10년차 여 수학 과외 강사 입니다.
중고등 과외 구합니다
26수능 사회문화 100, 생명1 99 사문/생명1 전문
검증된 수학과외
통합과학 / 내신대비 / 화학 / 생물 단기간 개념 및 심화응용 까지
[국어, 사탐 과외] 25 수시 -> 고려대 합격 / 26 정시 -> 연세대 합격
2027 수능 D - 195
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;
}
실습 예제 모범답안이 이모야이이꼬라지에요 ㅅㅂ