0

我一直在使用Big C++中的一些程序,在我复制 append.cpp 后,Eclipse'strlen' was not declared in this scope在第 8 行告诉我。我在网上查看了一下,我认为是因为我必须包含该<cstring>库,但是没有解决它。怎么了?

附加.cpp:

#include <iostream>    

using namespace std;

void append(char s[], int s_maxlength, const char t[])
{
    int i = strlen(s); // error occurs here
    int j = 0;
    while(t[j] != '\0' && i < s_maxlength)
    {
         s[i] = t[j];
         i++;
         j++; 
    }
    //Add zero terminator
    s[i] = '\0';
 }

int main()
{
    const int GREETING_MAXLENGTH = 10;
    char greeting[GREETING_MAXLENGTH + 1] = "Hello";
    char t[] = ", World!";
    append(greeting, GREETING_MAXLENGTH, t);
    cout << greeting << "\n";
    return 0;
 }
4

1 回答 1

4

包括<cstring>标题应该解决(应该解决)问题。我的怀疑是正确的:只是 Eclipse 是愚蠢的,它给了你一个误报。

在这种情况下,不要相信 IDE!总是尝试编译源文本 - 如果编译器接受它,那么 IDE 中的静态分析工具是错误的。

于 2013-08-15T18:35:40.450 回答