2017-02-10 11 views
-1

空白を数えて文字列変数の単語を数える必要があります。また、私はドットを数えることによって文章を数える必要があります。私は()でメンバー関数を使用して文字を取得し、それを比較しますが、何らかの理由でXcodeコンパイラがそれを許可しません。使用(文字列リテラルとの比較の結果が指定されていない) 1:だからコンパイラが見ているエラーがある文字列変数の空白を数える方法

#include "SpeechAnalyst.h" 
#include <stdio.h> 
#include <iostream> 
#include <string> 
using namespace std; 


namespace marina 
{ 
    void SpeechAnalyst::clear() 
    { 
    myData.clear(); 
    } 



    void SpeechAnalyst::addStringData(std::string stuff) 
    { 
     myData += stuff; 

    } 

    void SpeechAnalyst::addData(char * stuff) 
    { 
    string line; 
    line=stuff; 
    myData += line; 
    } 

    int SpeechAnalyst::getNumberOfWords() const 
    { 
    int i,words=0,sentence=0; 
    for (i=0; i<myData.length(); ++i) 
     { 
     if (myData.at(i) == " ") 
      words++; 
     } 
     return words; 
    } 


    } 

#ifndef SPEECHANALYST_H 
#define SPEECHANALYST_H 

#include <stdio.h> 
#include <iostream> 
#include <string> 
using namespace std; 

namespace marina 
{ 
class SpeechAnalyst : public string 
{ 
public: 
SpeechAnalyst() : std::string() 
{}; 
void clear(); // resets everything... 
void addData(char * stuff); 
void addStringData(std::string stuff); 

int getNumberOfWords() const; 
int getNumberOfSentences() const; 

friend ostream& operator << (ostream& outs, const SpeechAnalyst & sa); //   prints the data seen so far! 

private: 
std::string myData; 


}; 
} 
#endif /* SpeechAnalyst_h */ 

そして、これが私の実装ファイルである:ここ は私のヘッダファイルでありますstrncmpは代わりに) 2)ポインタと整数( 'INT' と 'CONSTのchar *')

エラーの両方がラインであるとの比較 "であれば(myData.at(I)==" ")"

+1

2つ以上のスペース文字が隣にある場合はどうなりますか?スペースを数えることは、単語の数を数えにくい方法です。なぜ言葉の数を数えてみませんか? – PaulMcKenzie

+0

これは割り当てであり、私の教授はスペースとドットを明示的に使用するように要求しています@PaulMcKenzie – Marina

+0

それは本当に私の質問に答えません。単語間にスペースが2つ以上ある場合はどうなりますか?データが 'Joe [sp] [sp] [sp] Smith'の場合はどうなりますか?何語ありますか? 3? – PaulMcKenzie

答えて

0

このコードは、空白とドットの数を数えます。タブの改行や改行のようにカウントされません。

1

私はあなた自身の解決策で遠く離れているとは思わない。あなたは一つの文字を作成する '' 対文字の配列を作成している "" で

if (myData.at(i) == " ") 

:代わりにあなたの

if (myData.at(i) == ' ') 

はこれを試してみてください。

関連する問題