Advertisement
wintest

ТЕКСТ: Всяка Първа Буква Главна

Jan 26th, 2017
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <clocale>
  3. #include <cstring>
  4.  
  5.  
  6. using namespace std;
  7. //Да се състави програма на C++, чрез която от клавиатурата се въвежда изречение с отделни думи(30..50 знака общо).
  8. //Като резултат на екрана да се извежда същия текст, но всяка отделна дума да започва с главна буква, а следващите я букви да са малки.
  9. void upperFirst(char *str);
  10.  
  11. int main(){
  12. char str[51];
  13. do{
  14. cin.getline(str, 50);
  15. } while (strlen(str) < 30);
  16. upperFirst(str);
  17. cout << str;
  18. return 0;
  19. }
  20. void upperFirst(char *str){
  21. int i = 0;
  22. bool flag = false;
  23. while (str[i] != '\0'){
  24. if (((str[i] >= 'A') && (str[i] <= 'Z')) || ((str[i] >= 'a') && (str[i] <= 'z'))){ //намирам се в дума - сред букви съм, независимо големи или малки
  25. if ((str[i] >= 'a') && (str[i] <= 'z') && !flag){// имам малка буква, но НЕ съм в дума => става голяма буква
  26. str[i] -= 32;
  27. }
  28. else if ((str[i] >= 'A') && (str[i] <= 'Z') && flag){ //иамм голяма буква, но СЪМ в дума => правя я малка
  29. str[i] += 32;
  30. }
  31. flag = true;//в дума съм (тоест срещнала съм буква като преди това не е е имало буква)
  32. }
  33. else{
  34. flag = false;//не съм в дума, срещнала съм тире, точка или всичко различно от буква.
  35. }
  36. i++;
  37. }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement