c++언어에서 strlen의 사용이 잘못된 건가요? 아니면 사용하지 못하는 것인가요?

  • xo0523xo
    xo0523xo

    #에러 메시지
    submission.cpp: In function ‘int main()’:
    submission.cpp:29:44: error: ‘strlen’ was not declared in this scope
    for (int num3 = 0; num3 < strlen(N[num1]); num3++)
    ^

    #소스 코드

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        int M_num, N_num;
        cin >> M_num >> N_num;
    
        char M[1000][61];
        char N[10000][61];
        bool test = true;
        int count = 0;
    
        cin.getline(M[0], 60, '\n');
        for (int num = 0; num < M_num; num++)
        {
            cin.getline(M[num], 60, '\n');
        }
        for (int num = 0; num < N_num; num++)
        {
            cin.getline(N[num], 100, '\n');
        }
    
        for (int num1 = 0; num1 < N_num; num1++)
        {
            for (int num2 = 0; num2 < M_num; num2++)
            {
                ##for (int num3 = 0; num3 < strlen(N[num1]); num3++)
                {
                    if (N[num1][num3] != M[num2][num3])
                    {
                        test = false;
                    }
                }
                if (test == true)
                {
                    count += 1;
                }
                test = true;
            }
        }
    
        cout << count << endl;
    
        return 0;
    }
    

    에러라고 나오는데 visual studio에서는 이상이 없다고 하거든요


    10년 전
1개의 댓글이 있습니다.
  • Being
    Being

    strlen()cstring 헤더에 정의되어 있습니다. visual studio에서 컴파일이 되는 것은 다른 헤더들이 간접적으로 해당 헤더를 포함시켰기 때문입니다.


    10년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.