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

时间:2013-07-13 03:13:23

标签: c++

我正在尝试编译这段代码,但无论出于何种原因它都无法正常工作。有人能帮我吗?我想知道如何正确使用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

3 个答案:

答案 0 :(得分:35)

您忘记加入<cstring><string.h>

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

答案 1 :(得分:4)

您需要为cstring添加strlen标头:

 #include <cstring>

您也可以包含string.h,这会将strlen放在全局命名空间中,而不是std命名空间。我认为最好使用cstring并停止使用using namespace std

答案 2 :(得分: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;

 }