wintest

ТЕКСТ:Най-дъга буква с еднакво начало и край

Jan 26th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.62 KB | None | 0 0
  1. #include <iostream>
  2. #include <clocale>
  3. #include <cstring>
  4.  
  5.  
  6. using namespace std;
  7. //Задача 5.
  8. //Да се състави функция на C++, чрез която по въведен низ, съдържащ няколко думи, връща най - дългата дума,
  9. //която започва и завършва с един и същи знак.
  10. //Изречението трябва да съдържа максимален брой знаци[20..60] и максимален брой думи[3..10].
  11.  
  12. void longestWord(char * text);
  13. int main(){
  14. char *text= new char[256];
  15. cin.getline(text,250);
  16. longestWord(text);
  17. }
  18. void longestWord(char * str){
  19. int i = 0;
  20. char start;
  21. char end;
  22. int tmpLength = 0;
  23. int maxLength=0;
  24. int tmpStartIndex;
  25. int maxStartIndex;
  26. bool flag = false;
  27. while (str[i] != '\0'){
  28. if (((str[i] >= 'A') && (str[i] <= 'Z')) || ((str[i] >= 'a') && (str[i] <= 'z'))){ //намирам се в дума - сред букви съм, независимо големи или малки
  29. if (!flag){
  30. start = str[i];
  31. tmpStartIndex = i;
  32. }
  33. flag = true;//в дума съм (тоест срещнала съм буква като преди това не е е имало буква)
  34. tmpLength++;
  35. }
  36. else{//не съм в дума, срещнала съм тире, точка или всичко различно от буква.
  37. end = str[i-1];
  38. if (start == end){
  39. if (tmpLength > maxLength){
  40. maxLength = tmpLength;
  41. maxStartIndex = tmpStartIndex;
  42. }
  43. }
  44. flag = false;
  45. tmpLength = 0;
  46. }
  47. i++;
  48. }
  49. for (size_t j = 0; j < maxLength; j++)
  50. {
  51. cout << str[maxStartIndex + j];
  52. }
  53. cout << endl;
  54. }
Add Comment
Please, Sign In to add comment