Advertisement
a53

ChangeCase

a53
Mar 4th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. #include <fstream>
  2. #include <iostream>
  3. #include <cstring>
  4. using namespace std;
  5.  
  6. ifstream fin("changecase.in");
  7. ofstream fout("changecase.out");
  8.  
  9. int n, cantitate[505];
  10. char denumire[505][21];
  11.  
  12. bool litera_mica(char X) { return X >= 'a' && X <= 'z'; }
  13.  
  14. bool litera_mare(char X) { return X >= 'A' && X <= 'Z'; }
  15.  
  16. char to_upper(char X)
  17. {
  18. if(litera_mica(X))
  19. return X - ('a' - 'A');
  20. return X;
  21. }
  22.  
  23. char to_lower(char X)
  24. {
  25. if(litera_mare(X))
  26. return X + ('a' - 'A');
  27. return X;
  28. }
  29.  
  30. void lowercase(char * s)
  31. {
  32. for(int i = 0 ; s[i] ; i ++)
  33. s[i] = to_lower(s[i]);
  34.  
  35. }
  36. void uppercase(char * s)
  37. {
  38. for(int i = 0 ; s[i] ; i ++)
  39. s[i] = to_upper(s[i]);
  40. }
  41. void titlecase(char * s)
  42. {
  43. for(int i = 0 ; s[i] ; i ++)
  44. if(i == 0)
  45. s[i] = to_upper(s[i]);
  46. else
  47. if(strchr(".,; ", s[i-1]))
  48. s[i] = to_upper(s[i]);
  49. else
  50. s[i] = to_lower(s[i]);
  51. }
  52. void invertcase(char * s)
  53. {
  54. for(int i = 0 ; s[i] ; i ++)
  55. if(i == 0)
  56. s[i] = to_lower(s[i]);
  57. else
  58. if(strchr(".,; ", s[i-1]))
  59. s[i] = to_lower(s[i]);
  60. else
  61. s[i] = to_upper(s[i]);
  62. }
  63. void sentencecase(char * s)
  64. {
  65. lowercase(s);
  66. bool inside = false;
  67. for(int i = 0 ; s[i] ; i ++)
  68. if(litera_mica(s[i]))
  69. {
  70. if(!inside)
  71. s[i] = to_upper(s[i]), inside = true;
  72. }
  73. else
  74. if(s[i] == '.')
  75. inside = false;
  76. }
  77. int main()
  78. {
  79. char tr[100], prop[256];
  80. fin.getline(tr , 100);
  81. fin.getline(prop , 256);
  82. if(strcmp(tr, "lowercase") == 0)
  83. lowercase(prop);
  84. if(strcmp(tr, "UPPERCASE") == 0)
  85. uppercase(prop);
  86. if(strcmp(tr, "TitleCase") == 0)
  87. titlecase(prop);
  88. if(strcmp(tr, "iNVERTcASE") == 0)
  89. invertcase(prop);
  90. if(strcmp(tr, "Sentencecase") == 0)
  91. sentencecase(prop);
  92. fout << prop;
  93. return 0;
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement