当按下回车键时,如何使数组停止读取字符?

时间:2019-10-30 02:03:04

标签: c++ strcmp

我是编程新手,似乎无法弄清楚该问题的解决方法。我的分配非常简单,仅使用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 :(得分:0)

用于输入。使用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);