1. ホーム
  2. c++

[解決済み] 関数呼び出し時のIdentifier not foundエラー

2022-03-07 11:32:01

質問

入力された文字列の大文字と小文字を反転させるプログラムがあります。これは私の.cppファイル内のコードで、Visual Studio C++ IDEを使用しています。ヘッダーファイルに何が必要なのか、あるいはこれを動作させるためにヘッダーファイルが必要なのか、よくわかりません。

私の関数呼び出しswapCaseでエラー。メインは、私がよく分からない何らかの理由でswapCaseを見ません。

#include <cctype>
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    char name[30];
    cout<<"Enter a name: ";
    cin.getline(name, 30);
    swapCase(name);
    cout<<"Changed case is: "<< name <<endl;
    _getch();
    return 0;
}

void swapCase (char* name)
{
    for(int i=0;name[i];i++)
    {
        if ( name[i] >= 'A' && name[i] <= 'Z' )
            name[i] += 32; //changing upper to lower
        else if( name[i] >= 'a' && name[i] <= 'z')
            name[i] -= 32; //changing lower to upper
    }
}

その他、構文やセマンティクスに関するヒントがあれば、教えてください。

どのように解決するのですか?

main関数の前にこの行を追加してください。

void swapCase (char* name);

int main()
{
   ...
   swapCase(name);    // swapCase prototype should be known at this point
   ...
}

これは前方宣言と呼ばれ、関数呼び出しのコンパイル時にコンパイラが関数のプロトタイプを知る必要があります。