Cod sursa(job #1129425)

Utilizator emanuelioanmuraruMuraru Emanuel-Ioan emanuelioanmuraru Data 27 februarie 2014 22:10:17
Problema Text Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#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();

}