Coding & Programming/C, C++

[C언어/C++] 문자열 길이 구하기 : strlen() 함수 ID/Password 길이 체크 예제

mainCodes 2021. 4. 22. 10:08
[C언어/C++] 문자열 길이 구하기 : strlen() 함수 ID/Password 길이 체크 예제

 

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و

 

strlen() 함수는 문자열의 길이를 구하는 함수입니다. NULL('\0')이포함된 문자열에서 NULL 문자를 제외한 문자열의 길이를 반환합니다. 예제는 입력한 문자열의 길이를 구하는 코드와 입력한 ID/Password가 하드 코딩된 ID/Password의 길이와 문자열이 동일한지를 비교 검사하는 코드로 구성되어 있습니다.

 

strlen() 함수의 자세한 설명은 예제를 참고하세요.

 

▣ strlen() 함수 예제(Example Code):

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
 
#define DB_ID         "mainCodes"
#define DB_PASSWORD   "abcd12345"
#define ID_LEN  9
int main()
{
    char str_a[50= "Hello World";
    char str_b[20= { 'a''b''c''d','e','f','g''\0' };
    char str_c[50];
    char id[50], password[50];
    int i;
    int len;
 
    printf("문자열을 입력하세요: ");
    scanf("%s", str_c);
 
    //str_c의 문자열 길이 구하기
    len = (int)strlen(str_c);
 
    //문자열의 길이 출력
    printf("str_a(%s)의 길이 = %d\n", str_a, (int)strlen(str_a));
    printf("str_b(%s)의 길이 = %d\n", str_b, (int)strlen(str_b));
    printf("str_c(%s)의 길이 = %d\n", str_c, len);
    
    //문자열 길이만큼 1바이트씩 출력
    for (i = 0; i < strlen(str_a); i++)
        putchar(str_a[i]);
 
    //ID/Password 입력, 비교 예제: ID/Password가 맞으면 while()문을 종료함
    while (1)
    {
        printf("\n\nID를 입력하세요(ID 길이:%d): ", ID_LEN);
        scanf("%s", id);
        printf("\n\nPassword를 입력하세요(Password 길이:%d): ", ID_LEN);
        scanf("%s", password);
 
        if ( (strlen(id) != ID_LEN) || (strlen(password) != ID_LEN))
        {
            printf("입력한 ID 또는 Password의 길이가 9보다 크거나 작습니다. 다시 입력해 주세요.\n");
            continue;
        }
        else if ((strlen(id) == ID_LEN)&&(strlen(password) == ID_LEN) )
        {
            if ((strcmp(DB_ID, id) == 0)&&(strcmp(DB_PASSWORD, password) == 0))
            {
                printf("입력한 ID/Password의 길이가 %d이며, DB에 저장된 ID/Password가 동일합니다.\n", ID_LEN);
                break;
            }
        }
    }
 
    return 0;
}
cs

 

 실행결과(Output):

 

상 JollyTree였습니다. (•̀ᴗ•́)و