2011-09-28 20 views
4

以下は私が思いついたコードであり、今夜はすべてのコーディングでの最初の試みです。しかし、私はifステートメントが正しく動作するように見えることはできません。私がWestleyやWestleyや(Space)Westleyと入力しても、他の人にジャンプするだけです。2つの文字列を比較しても結果が得られないのはなぜですか?

私のチームメンバーの名前は受け入れることができますが、私は自分の名前が効いていると思っていました。どんな考えや助けも素晴らしいだろう。また、サイドノートとして、私はそれを試してループしていました。ありがとうございます

+0

初めてのコーディングで、C++を選択しましたか?グッシー –

+0

安全な/正しいIOと "C++の方法"を書く "C方法"を区別するBjarne Stroustrupの短いPDFを読むことは有益です。http://www.stroustrup.com/new_learning.pdf – HostileFork

答えて

0

まず、C++でコーディングする場合は、char []の代わりにstd::stringを使用する必要があります。 2つの文字列(char []の場合は、strcmpなどの関数を呼び出す必要があります)を比較できるという利便性があります。例えば

:代わりに文字配列char[]

#include <iostream> 
#include <string> // <-- important 
using namespace std; 

int main() 
{ 
    string Westley("Westley"); 
    ... 

    if(membername == Westley) // now works! 
    { 
     ... 
1

これは作業中の配列なので、代わりにstrmcpを使用する必要があります。

if (!strcmp(membername, Westley) ... 

あなたがCで作業しているので、代わりに文字列を使用++:

#include <string> 

using namespace std; 

string Westley = "Westley"; 

を... 、あなたが

if (membername == Westley) ... 
4

を行うことができますあなたは、 "==" 演算子を使用することはできません。およそ

のstrcmp

if (strcmp(membername, "Westley") == 0) 
    ... 
5

char[]を使用しないでくださいを見つけるために試してみてください。便利な方法で比較を行う方法を知っているように(内容が同じ場合ではなく、同じ配列であるかどうかを文字配列テストで比較する)、この種の処理にはstd::stringを使用してください。

4

これは、C++で、あなたが

​​

またはあなたがstd::stringの代わりに使用することができ、可能な場合のようにこれを行うことができますが、文字列の比較

ためstrcmpを使用する必要がchar配列ではない文字列を使用していますその後、あなたは

を次のように std::stringを使用することができます ==オペレータ

を使用することができ、文字列を格納するための

#include <string> 
using namespace std; 

int main(){ 
    string Westley = "Westley"; 

    .... 

    string membername; 
    cout << "Please Enter a Beta Team Members Name.\n"; 
    cin >> membername; 
    if (membername == Westley){ 

     .... 
    } 
    .... 
} 
2

std::stringを使用すると、目的の結果が得られます。

if (membername == Westley) 

アドレス比較なくコンテンツ比較の比較結果上記char[]データについて、そのため。

0

使用している==演算子は、文字列のアドレスを比較します。 2つのC文字列を比較するには、<cstring>string.h)のstrcmp関数を使用します。 C++では、std::stringクラステンプレートを使用する必要があります。このテンプレートは、==演算子を使用して直感的に比較できます。

0
if (membername == Westley) 

は、2つのポインタの値だけを比較します。

関連する問題