개발 일지/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
반응형