using std::cout; using std::string; using std::cin; using std::endl; using std::vector; using std::count;
int main()
{ // ask for input cout << "Please enter input to be analyzed: "; vector<char> input; char inp; // invariant: input contains all the input words while (cin >> inp) input.push_back(inp);
cout << endl << "The number of entries in the vector is " << input.size() << "!" << endl; int i = 0; char testword = 'test'; count(input.begin(), input.end(),testword,i); cout << "The number of 5's in the input are: " << i;
Hmmmm. Jeg kan ikke få din første kommentar til at virke.
Mener du at jeg f.eks. som input kan taste "en to test tre fire test fem seks test 0" (0 er numerisk nul) og få output:
"The number of entries in the vector is 9 The number of 5's in the input are: 3"
Jeg kan stadig ikke fortælle programmet at input er færdigt.
Jeg kunne godt tænke mig at forstå denne løsning idet den ikke begrænser input til at være en bestemt mængde entries. Men måske er det det at jeg briger en vector til at lagre char i, som den ikke kan lide. Vil en list være bedre? Det er vist et 3. spørgsmål, som ikke skal besvares i denne tråd.
PS: (Jeg kan se at jeg skal have ændret 5's til at være "test" idet mit distinkte ord er "test" jvf. initialisation i linjen "char testword = 'test';")
Tak for svaret Soepro Med lidt modifikationer pga. ændrede forudsætinger virker det nu. TAK
Her er den endelige kode:
----------------------------------------------------------------- // ex03-03.cpp // A program that counts how many times a distinct work appears in the input
using std::cout; using std::string; using std::cin; using std::endl; using std::vector; using std::count;
int main()
{ // ask for input cout << "Please enter input to be analyzed (followed by \"EOF\"): "; vector<string> input; string inp;
// invariant: input contains all the input words string eosChar = "EOF"; while (cin >> inp && inp!= eosChar) input.push_back(inp);
cout << endl << "The number of entries in the vector is " << input.size() << "!" << endl; int i = 0; string testword = "test"; count(input.begin(), input.end(),testword,i); cout << "The number of test's in the input are: " << i;
getch(); return 0; } --------------------------------------------------------------- Som med input: et to test tre test fire test EOF giver output: The number of entries in the vector is 6 The number of test's in the input are: 3
Lige som det skal være Tak igen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.