繁体   English   中英

使用 strlen() 时“未在此范围内声明”

[英]'not declared in this scope' when using strlen()

我正在尝试编译这段代码,但无论出于何种原因它都行不通。 有人能帮我吗? 我想知道如何正确使用 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 未在此范围内声明

您忘记包含<cstring><string.h>

cstring将在std命名空间中为您提供strlen ,而string.h会将其保留在全局命名空间中。

您需要为strlen包含cstring标头:

 #include <cstring>

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

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

代码

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

 int main()
 {
    char buffer[80];

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

    return 0;

 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM