Как сделать так, чтобы мой массив прекратил чтение символов при нажатии клавиши ввода? - PullRequest
0 голосов
/ 30 октября 2019

Я новичок в программировании и не могу понять, как решить эту проблему. Мое назначение очень простое: упорядочить два слова в алфавитном порядке, используя только функцию strcmp.

Моя программа компилируется и запускается, но она не выполняется, пока я полностью не заполню массив символами, но мы должнывозможность использовать слова разной длины.

Вот что я написал:

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

int main()
{
        int x;
        char wordone[10]  ,  wordtwo[10];

        cout << "Please enter your first word: \n";
        for(x=0; x<10; x++)  cin >> wordone[10];
        cout << "Please enter the second word: \n";
        for(x=0; x<10; x++)  cin >> wordtwo[10];

        if(strcmp(wordone, wordtwo)<0)
        {
        cout << wordone << endl << wordtwo;
        }
        if ( strcmp( wordone,wordtwo)>0)
        {
        cout << wordtwo << endl << wordone;
        }

        else
        {
        cout << wordone << endl << wordtwo;
        }


        return 0;
}


And the output looks like this:

Please enter your first word: 

help
me
please

Please enter the second word: 

hello
how
`
@
àu0þ

Я пробовал каждую комбинацию, какую только мог придумать, любая помощь будет высоко оценена!

1 Ответ

0 голосов
/ 30 октября 2019

Для ввода. Используйте getline или напрямую принимайте ввод. Вместо этого -

 cout << "Please enter your first word: \n";
 for(x=0; x<10; x++)  cin >> wordone[10];

Возможные решения.

  1. Сделайте это -

    char name[10];
    cin>>name;
    
  2. или сделайте это

    string s;
    cin>>s; // simply take input like ordinary variable. Rember to #include<string>
    
  3. или сделайте это -

    string s;  // for getline this is must. Use string
    getline(cin,s);
    
...