Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <clocale>
- #include <cstring>
- using namespace std;
- //Да се състави програма на C++, чрез която от клавиатурата се въвежда изречение с отделни думи(30..50 знака общо).
- //Като резултат на екрана да се извежда същия текст, но всяка отделна дума да започва с главна буква, а следващите я букви да са малки.
- void upperFirst(char *str);
- int main(){
- char str[51];
- do{
- cin.getline(str, 50);
- } while (strlen(str) < 30);
- upperFirst(str);
- cout << str;
- return 0;
- }
- void upperFirst(char *str){
- int i = 0;
- bool flag = false;
- while (str[i] != '\0'){
- if (((str[i] >= 'A') && (str[i] <= 'Z')) || ((str[i] >= 'a') && (str[i] <= 'z'))){ //намирам се в дума - сред букви съм, независимо големи или малки
- if ((str[i] >= 'a') && (str[i] <= 'z') && !flag){// имам малка буква, но НЕ съм в дума => става голяма буква
- str[i] -= 32;
- }
- else if ((str[i] >= 'A') && (str[i] <= 'Z') && flag){ //иамм голяма буква, но СЪМ в дума => правя я малка
- str[i] += 32;
- }
- flag = true;//в дума съм (тоест срещнала съм буква като преди това не е е имало буква)
- }
- else{
- flag = false;//не съм в дума, срещнала съм тире, точка или всичко различно от буква.
- }
- i++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement