[c언어] 문자열 함수 사용 연습 (fgets, isalpha, isdigit, isupper, strcpy, strcat, strlen 등)

2021. 2. 3. 11:24Computer Science/C

 

1. 적당한 길이의 문자열을 입력 받는다. 

2. 그 안에 존재하는 문자들만을 한 단어로 출력한다. 

3. 그 안에 존재하는 숫자들로 한 단어르 ㄹ출력한다.

4. 그 단어 안의 소문자는 대문자로 대문자는 소문자로 바꾼 단어를 출력한다.

5. 문자열단어와 숫자단어를 하나의 단어로 출력하는 프로그램을 작성한다.

 

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void)
{
    char string[50]; // 입력되는 문자열을 저장
    char alphaString1[50]; // 입력문자열에서 알파벳만 저장
    char alphaString2[50]; // 대소문자를 바꿈
    char digitString[50];
    char convertedString[50]; // 문자들과 숫자들로 재배열한 문자열
    int i, j = 0, k = 0;
    
    printf("문자열을 입력하세요: ");
    fgets(string, sizeof(string), stdin);
    
    for (i = 0; string[i] != '\0'; i++) {
        if (isalpha(string[i]) != 0) {
            alphaString1[j] = string[i];
            j++;
        }
        else if (isdigit(string[i]) != 0) {
            digitString[k] = string[i];
            k++;
        }
    }
    
    printf("문자들은 %s\n", alphaString1);
    printf("숫자들은 %s\n", digitString);
    
    j = 0;
    for (i = 0; alphaString1[i] != '\0'; i++) {
        if (islower(alphaString1[i]) != 0) {
            alphaString2[j] = toupper(alphaString1[i]);
            j++;
        }
        else if (isupper(alphaString1[i]) != 0) {
            alphaString2[j] = tolower(alphaString1[i]);
            j++;
        }
    }
    
    strcpy(convertedString, alphaString2);
    strcat(convertedString, digitString);
    
    printf("대소문자를 바꾼 문자들은 %s\n", alphaString2);
    printf("문자들과 숫자들로 재배열한 문자열은 %s\n", convertedString);
}

 

 

입력 값 : ab1cd23e

결과는 아래와 같다.