개발 일지/C언어

tolower 함수란?

DDD Developer 2024. 9. 15. 14:30
728x90
반응형

tolower 함수란?

#include <ctype.h> 추가

 

 

기능

 

● 입력으로 받은 문자가 대문자 알파벳인 경우, 해당하는 소문자 알파벳을 반환.

●  입력 문자가 소문자 알파벳이거나 알파벳이 아닌 경우, 입력 문자를 그대로 반환.

 

사용 예시

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

int main() {
    char c1 = 'A';
    char c2 = 'a';
    char c3 = '5';

    printf("%c -> %c\n", c1, tolower(c1)); // A -> a
    printf("%c -> %c\n", c2, tolower(c2)); // a -> a (변경 없음)
    printf("%c -> %c\n", c3, tolower(c3)); // 5 -> 5 (변경 없음)

    return 0;
}

 

 

현재 내 코드내에서 사용

        else if (choice == 2) { // 회원가입 선택 시
            char id[NAME_SIZE];
            char password[BUF_SIZE];
            char phonenum[BUF_SIZE];
            char nickname[NAME_SIZE]; // 닉네임 추가

            printf("아이디: ");
            scanf("%s", id);
            getchar(); // 입력 버퍼 비우기

            printf("비밀번호: ");
            fgets(password, BUF_SIZE, stdin);
            password[strcspn(password, "\n")] = 0; // 개행 문자 제거

            printf("전화번호: ");
            fgets(phonenum, BUF_SIZE, stdin);
            phonenum[strcspn(phonenum, "\n")] = 0; // 개행 문자 제거

            printf("닉네임: "); // 닉네임 입력 받기
            fgets(nickname, NAME_SIZE, stdin);
            nickname[strcspn(nickname, "\n")] = 0; // 개행 문자 제거

            // 탈퇴 아이디 재가입 확인 로직
            if (strcmp(msg, "signup_confirm_deactivated_id\n") == 0) {
                char confirm[2];
                printf("탈퇴한 아이디입니다. 다시 회원가입을 하시겠습니까? (y/n): ");
                scanf("%1s", confirm); // y 또는 n 하나만 입력받음

                if (tolower(confirm[0]) == 'y') {
                    // 재가입 확인 시 닉네임에서 '#' 제거 후 회원가입 진행
                    nickname[strcspn(nickname, "#")] = 0;
                    int len = snprintf(msg, BUF_SIZE, "signup,%s,%s,%s,%s\n", id, 
                    password, phonenum, nickname);
                    write(sock, msg, len);
                } else {
                    // 재가입 취소 시 메뉴로 돌아감
                    printf("회원가입이 취소되었습니다.\n");
                }
            } else {
                // 기존 회원가입 요청 처리 로직
                int len = snprintf(msg, BUF_SIZE, "signup,%s,%s,%s,%s\n", id, 
                password, phonenum, nickname);
                write(sock, msg, len);
            }
        }
if (tolower(confirm[0]) == 'y') {
    // ...
}

 

이 부분은 사용자가 입력한 재가입 확인 응답(confirm)이 대문자 'Y'인 경우에도 소문자 'y'로 변환하여 비교하도록 한다.

즉, 사용자가 'y' 또는 'Y'를 입력하면 재가입 의사가 있는 것으로 처리된다.

 

 

#include <ctype.h> 에는 다양한 문자 입출력 함수들이 있으니 다음에 알아보자.

728x90
반응형