Pagini recente » Cod sursa (job #721233) | Cod sursa (job #878983) | Cod sursa (job #74124) | Cod sursa (job #1871079) | Cod sursa (job #1019694)
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <cstring>
#include <vector>
std::ifstream fin("nc.in");
std::ofstream fout("nc.out");
int nrCuv, nrFraze;
std::vector<int> lungimi;
int check(char s[])
{
std::string cuv = "";
for(int i = 0; i < strlen(s); i++)
{
if(s[i] == '?' || s[i] == '!')
{
if(cuv != "")
{
// std::cout<<cuv<<' ';
nrCuv++;
}
lungimi.push_back(nrCuv);
nrCuv = 0;
nrFraze++;
// std::cout<<"cuv1: "<<"'"<<cuv<<"'"<<'\n';
cuv = "";
continue;
}
if(i < strlen(s) - 2 && s[i] == '.' && s[i+1] == '.' && s[i+2] == '.')
{
if(cuv != "")
{
nrCuv++;
}
i += 2;
lungimi.push_back(nrCuv);
nrCuv = 0;
nrFraze++;
// std::cout<<"cuv2: "<<"'"<<cuv<<"'"<<'\n';
cuv = "";
continue;
}
if(s[i] == '.')
{
if(cuv != "")
{
nrCuv++;
}
lungimi.push_back(nrCuv);
nrCuv = 0;
nrFraze++;
// std::cout<<"cuv3: "<<"'"<<cuv<<"'"<<'\n';
cuv = "";
continue;
}
if(s[i] == ' ' || s[i] == ',')//&& s[i-1] != ',' && s[i-1] != ' ')
{
if(cuv != "")
{
nrCuv++;
}
// std::cout<<"cuv4: "<<"'"<<cuv<<"'"<<'\n';
cuv = "";
continue;
}
// if( i > 0 && (s[i] == ' ' || s[i] == ',') && ((s[i-1] >= 'a' && s[i-1] <= 'z') || (s[i-1] >= 'A' && s[i-1] <= 'Z')))
// {
// continue;
// }
if((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= '0' && s[i] <= '9'))
{
cuv += s[i];
}
// std::cout<<cuv<<'\n';
}
}
void citire()
{
char s[4001];
while(fin.getline(s, 4001))
{
nrCuv += check(s);
}
fout<<nrFraze<<'\n';
for(int i = 0; i < lungimi.size(); i++)
{
fout<<lungimi[i]<<'\n';
}
}
int main()
{
citire();
return 0;
}