Так что я пытаюсь написать функцию, чтобы проверить, находится ли слово в предложении, путем циклического прохождения массива символов и проверки для той же строки char. Программа работает до тех пор, пока в Sentence нет пробелов. Я googled вокруг и они все те же предложения;std :: cin пропускает пробелы
cin.getline
Но, однако, я его реализую, он либо не запускается, либо пропускает весь вход и идет прямо к выходу.
Как я могу объяснить пробелы?
#include <iostream>
using namespace std;
bool isPartOf(char *, char *);
int main()
{
char* Word= new char[40];
char* Sentence= new char[200];
cout << "Please enter a word: ";
cin >> Word;
cout << endl << "Please enter a sentence: ";
//After Word is input, the below input is skipped and a final output is given.
cin.getline(Sentence, 190);
cout << endl;
if (isPartOf(Word, Sentence)==true)
{
cout << endl << "It is part of it.";
}
else
{
cout << endl << "It is not part of it.";
}
}
bool isPartOf(char* a, char* b) //This is the function that does the comparison.
{
int i,j,k;
for(i = 0; b[i] != '\0'; i++)
{
j = 0;
if (a[j] == b[i])
{
k = i;
while (a[j] == b[k])
{
j++;
k++;
return 1;
if (a[j]=='\0')
{
break;
}
}
}
}
return 0;
}
И мне не разрешено использовать strstr для сравнения.
Что на самом деле случилось с использованием 'зЬй :: GetLine()' и 'станд :: istringstream'? –
Он никогда не запрашивает ввод для предложения. Вот как выглядит cmd при запуске кода. [LINK] (https://imgur.com/w5oQCEu) –