Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <clocale>
- #include <cstring>
- using namespace std;
- //Задача 5.
- //Да се състави функция на C++, чрез която по въведен низ, съдържащ няколко думи, връща най - дългата дума,
- //която започва и завършва с един и същи знак.
- //Изречението трябва да съдържа максимален брой знаци[20..60] и максимален брой думи[3..10].
- void longestWord(char * text);
- int main(){
- char *text= new char[256];
- cin.getline(text,250);
- longestWord(text);
- }
- void longestWord(char * str){
- int i = 0;
- char start;
- char end;
- int tmpLength = 0;
- int maxLength=0;
- int tmpStartIndex;
- int maxStartIndex;
- bool flag = false;
- while (str[i] != '\0'){
- if (((str[i] >= 'A') && (str[i] <= 'Z')) || ((str[i] >= 'a') && (str[i] <= 'z'))){ //намирам се в дума - сред букви съм, независимо големи или малки
- if (!flag){
- start = str[i];
- tmpStartIndex = i;
- }
- flag = true;//в дума съм (тоест срещнала съм буква като преди това не е е имало буква)
- tmpLength++;
- }
- else{//не съм в дума, срещнала съм тире, точка или всичко различно от буква.
- end = str[i-1];
- if (start == end){
- if (tmpLength > maxLength){
- maxLength = tmpLength;
- maxStartIndex = tmpStartIndex;
- }
- }
- flag = false;
- tmpLength = 0;
- }
- i++;
- }
- for (size_t j = 0; j < maxLength; j++)
- {
- cout << str[maxStartIndex + j];
- }
- cout << endl;
- }
Add Comment
Please, Sign In to add comment