0

私はBig C++でいくつかのプログラムに取り組んできましたが、append.cpp をコピーした後、Eclipse は'strlen' was not declared in this scope8 行目で教えてくれました。<cstring>解決しませんでした。どうしたの?

append.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 に答える