Pagini recente » Cod sursa (job #1657892) | Cod sursa (job #2669648) | Diferente pentru runda/vot/voteaza_nargy_si_fumeanu intre reviziile 1 si 2 | Cod sursa (job #3295533) | Cod sursa (job #1129425)
#include <fstream>
#include <cstring>
using namespace std;
float raport(float a, float b)
{
float x;
x = a/b;
return x;
}
int main()
{
ifstream f("text.in");
ofstream g("text.out");
char v[1000], separator[] = " @#$%^&*+<>/|\-_!,.?;:'";
int k = 0;
f.get(v, 1000);
float c = 0;
while(strchr(separator, v[k])){ ///verifica daca exista separatoare la inceput
strcpy(v+k, v+k+1);
k++;
}
k = 0;
while(strchr(separator, v[strlen(v) - 1 - k])){ ///verifica daca exista separatoare la sfarsit
strcpy(v+k, v+k-1);
k++;
}
for (int i = 0; i < strlen(v); i++){ ///verifica daca exista separatoare consecutive in interior
if(strchr(separator, v[i]))
i++;
while(strchr(separator, v[i]))
strcpy(v+i, v+i+1);
}
for(int i = 0; i < strlen(v); i++){ ///numara separatoarele in contorul c, deci vor fi c+1 cuvinte
if (strchr(separator, v[i])){
c++;
strcpy(v+i, v+i+1);
}
}
g << raport(strlen(v),c);
f.close();
g.close();
}