# PBinfo #2635 – CapsLock – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Marcel a primit o tastatura noua de ziua lui. El vrea sa scrie un text folosind doar litere ale alfabetului englez si spatii. El a descoperit tasta CapsLock, care atunci cand este apasata se activeaza. Daca tasta este activata, atunci toate literele care le va scrie in continuare, pana in momentul in care tasta este dezactivata (apasand CapsLock inca o data) vor fi majuscule. 

Date de intrare
Fișierul de intrare capslock.in conține pe prima linie tastele apasate de Marcel (daca tasta e litera, atunci este codificata prin litera mica a acestia, daca e spatiu atunci va fi codificata printr-un spatiu iar daca e CapsLock va fi codificata prin simbolul #), fara spatii intre ele;

Date de ieșire
Fișierul de ieșire capslock.out va conține pe prima linie textul scris de Marcel.

Restricții și precizări

textul este mai scurt de 255 de caractere
el va apăsa tasta CapsLock de maxim 35 ori
la început tasta CapsLock este dezactivata.
spatiile nu sunt afectate de CapsLock

Exemplu:
capslock.in

#s#alut #marcel
capslock.out

Salut MARCEL
Explicație
Tasta CapsLock devine activa de la început și se dezactivează după tasta s → el a scris majuscula S. Tasta CapsLock se activează și la al 2-lea cuvânt și rămâne activă → restul literelor vor fi majuscule.

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
ifstream in("capslock.in");
ofstream out("capslock.out");
char carac[300];
int main() {
    in.getline(carac, 300);
    for (int i = 0; i < strlen(carac); i++)
        if (carac[i] == '#') {
        int j = i + 1;
        while (carac[j] && carac[j] != '#') {
            carac[j] = toupper(carac[j]);
            j++;
        } i = j;
    }
    for (int i = 0; i < strlen(carac); i++)
        if (carac[i] != '#')
			out << carac[i];
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/2635)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/2635/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-2635/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
