2017-11-13 12 views
0

私はここにプログラムを作成していますが仕様です:CharConverter不明なエラーが

文字列に対してさまざまな操作を実行CharConverterクラスを作成します。まず、以下の2つのパブリックメンバー関数が必要です。

大文字のメンバー関数は文字列を受け取り、すべての小文字を大文字に変換した文字列を返します。文字がすでに大文字であるか文字でない場合は、そのまま残すべきです。

properWordsメンバー関数は、スペースで区切られた単語の文字列を受け取り、各単語の最初の文字を大文字に変換したコピーを返します。

クラスを使用する簡単なプログラムを作成します。ユーザーに文字列の入力を促すはずです。それから、適切な単語関数を呼び出し、結果の文字列を表示する必要があります。最後に、大文字の関数を呼び出し、この結果の文字列を表示する必要があります。

私はすべてを正しく変換したことを確認するためにモジュール化せずにプログラムを書きました。今、私はコンパイル時に私は、私は彼らが何を意味するのか分からないエラーを取得していますモジュール化しようとしていること:

errors

ここに私のコードは次のとおりです。の初めに

#include<iostream> 
#include<string> 
#include<vector> 
#include<ctype.h> 

using namespace std; 

class CharConverter { 

public: 
void uppercase(string, int); 
void properWords(string, int); 

}; 

void CharConverter::uppercase(string myString, int s) { 

s = myString.length(); 

for (int i = 0; i <= s; i++) { 

    myString[i] = toupper(myString[i]); 

} 

cout << myString << endl; 

} 

void CharConverter::properWords(string myString, int s) { 

for (int i = 0; i <= s; i++) { 
    myString[i]; 

    myString[0] = toupper(myString[0]); 

    if (myString[i] == ' ') { 
     myString[i + 1] = toupper(myString[i + 1]); 
    } 
} 

cout << myString << endl; 
} 


int main() { 

void properWords(string, int); 
void uppercase(string, int); 


string sentence; 
int size; 

cout << "Enter a sentence you want converted to all uppercase letters and 
set up with proper uppercase letters." << endl; 
getline(cin, sentence); 

size = sentence.length(); 

properWords(sentence, size); 

uppercase(sentence, size); 

return 0; 
} 
+0

エラーメッセージをテキストとして投稿してください。 –

+0

イメージをクリックすると拡大されます。 –

+0

@KennyFreemanそれはポイントではありません。 StackOverflowのガイドラインはコードとエラーメッセージを画像ではなくテキストとして投稿することです。外部リソースへのリンクが時間を刻みます。可能な限り質問自体にすべてが自己完結していなければなりません。画像は、質問の内容をホストするのではなく、質問を強化するために使用する必要があります。 –

答えて

1

メイン

int main() { 

void properWords(string, int); 
void uppercase(string, int); 

次の2つのの機能ではなく、CharConverterの一部を宣言します。そして、あなたは以前に定義した関数ではなく、それらの関数を呼び出します。

コンパイラ(実際にはリンカ)は、これらの非メンバ関数を見つけることができないと不平を言う。そしてそれは本当です、彼らは存在しません。

これで、クラスが必要かどうかを判断する必要があります。その場合、クラスオブジェクトを作成し、メンバ関数を呼び出します。または、クラス宣言をスキップし、関数をフリー関数にします。

+0

私はそれが何か簡単だと思った。 C++は、私がJavaでこれをやったことを覚えているよりはるかに複雑に思えます。ありがとう。 –

+0

@Kenny - C++はJavaのようなものではありません。あなたはC++のすべての 'static'関数を持つクラスを持つことができますが、そうする必要はありません。あなたは機能だけを持ち、クラスは持てません。私たちの中には、*これはあまり複雑ではないと信じている人もいます。 :-) –

関連する問題