22

我正在尝试编译这段代码,但无论出于何种原因它都不起作用。有人能帮我吗?我想知道如何正确使用 strlen():

 #include<iostream>
 using namespace std;

 int main()
 {
    char buffer[80];

    cout << "Enter a string:";
    cin >> buffer;
    cout << strlen(buffer);

    return 0;

 }

我试过使用 cin.getline(buffer, 80); 但我得到了同样的编译错误问题。

我的编译器说错误是这样的

错误:未在此范围内声明 strlen

4

3 回答 3

50

你忘了包括<cstring>or <string.h>

cstringstrlenstd命名空间中为您提供,同时string.h将其保留在全局命名空间中。

于 2013-07-13T03:15:06.133 回答
8

您需要包含cstring以下标题strlen

 #include <cstring>

您也可以string.h将其包含strlen在全局命名空间中,而不是std命名空间。我认为使用cstring和放弃使用是更好的做法using namespace std

于 2013-07-13T03:14:57.967 回答
0

您可以包含 <cstring>,那么您将不会收到任何错误。

代码

#include<iostream>
#include<cstring>
 using namespace std;

 int main()
 {
    char buffer[80];

    cout << "Enter a string:";
    cin >> buffer;
    cout << strlen(buffer);

    return 0;

 }

于 2020-12-22T17:19:35.410 回答