• .펭수. · 898203 · 19/10/21 00:53 · MS 2019

    C++은 객체지향적 언어이다.

  • 눅눅이(난 탈모 아님ㅎ) · 879821 · 19/10/21 00:54 · MS 2019

    C도 몯헤먹겓는데 플러스 두개 더 붙은건 더 어렵겓죠 야발

    꼭 생겨먹은게 내 핟점갇내요 ㅠㅅ ㅠ

  • .펭수. · 898203 · 19/10/21 00:55 · MS 2019

    앋 ㅠㅠ 저는 경정시에서 암기만하면돼서 몰라욥><

  • 눅눅이(난 탈모 아님ㅎ) · 879821 · 19/10/21 00:55 · MS 2019

    졷보는 구헫는대 널마나 똑같이 나올지 모르겓워요

  • .펭수. · 898203 · 19/10/21 00:57 · MS 2019

    할뚜이따할뚜이따!!

  • 눅눅이(난 탈모 아님ㅎ) · 879821 · 19/10/21 00:57 · MS 2019

  • Evolved Slave II · 872525 · 19/10/21 00:59 · MS 2019

    str함수는 텍스트로 보기 때문에 연산할 수 없다

  • 눅눅이(난 탈모 아님ㅎ) · 879821 · 19/10/21 01:00 · MS 2019

    #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;
    }

  • 눅눅이(난 탈모 아님ㅎ) · 879821 · 19/10/21 01:00 · MS 2019

    실습 예제 모범답안이 이모야이이꼬라지에요 ㅅㅂ

  • Evolved Slave II · 872525 · 19/10/21 01:01 · MS 2019

  • 한때는 재수생이었던 시체 · 775642 · 19/10/21 01:01 · MS 2017
    관리자에 의해 삭제된 댓글입니다.