Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wykropkowanie wyrazów

Ostatnio zmodyfikowano 2015-05-15 11:15
Autor Wiadomość
Malcadicta
Temat założony przez niniejszego użytkownika
Wykropkowanie wyrazów
» 2015-05-14 18:49:19
Witam.

Tak w celu postawienia sprawy jasno - jestem zielona w temacie i informatykę mam jedynie bardzo podstawową.

Przechodząc do właściwego problemu - mam za zadanie napisać program, który najpierw wczyta liczbę n, potem wczyta n zdań i wykropkuje wszystkie litery z wyjątkiej pierwszej i ostatniej każdego wyrazu ( o tak: "kasia" na "k...a") i wypisze wszystkie te zdania.

W moim wykonaniu wygląda to tak:
C/C++
#include <iostream>
using namespace std;

main()

{
    int n;
    cin >> n;
   
    string tab[ 1001 ];
    int i = 0;
    string s;
   
    cin.sync();
    for( int a = 1; a <= n; a++ )
    {
        getline( cin, s );
        for( int c = 1; c < s.size() - 1; c++ )
        if( s[ c - 1 ] != ' ' && s[ c + 1 ] != ' ' && s[ c ] != ' ' )
             s[ c ] = '.';
       
        tab[ a ] = s;
    }
   
   
    for( int b = 1; b <= n; b++ )
         cout << tab[ b ] << endl;
   
}

Wysyłać te zadania mamy na stronę, która od razu sprawdza ich poprawność. I o ile mnie działa wszystko (a przynajmniej tak mi się wydawało i nic nie wskazuje inaczej), o tyle strona odrzuca, pisze, że podaje złe wyniki. Byłabym wdzięczna za zerknięcie, czy faktycznie coś jest tutaj nie tak, a ja tego nie widzę - jak jużmówiłam  jestem na takim poziomie, że mogłam łatwo przeoczyć błąd.
P-132253
Monika90
» 2015-05-14 20:33:38
Przed main napisz int:
int main()
, a zamiast cin.sync();
cin.ignore();
, a na początku dodaj
#include <string>
 jak używasz stringów to musi być
#include <string>


Może te zdania zawierają znaki przestankowe, wtedy Twój program nie zadziała.
P-132271
Maciek
» 2015-05-15 11:15:14
A to ma być c czy c++ ? Jeśli c++ to mozesz wykorzystać STL to zrobienia to w sposób bardzo ładny wykorzystując do tego C++11 (wyrażenie lambda) i do tego for_each które zamieni wszystkie znaki pomiedzy std::string::begin + 1 a std::string::end - 1. Do tego porzebna była by jeszcze instrukcja warunkowa która sprawdzi długośc stringu. Nie chcę wklejać gotowca ale jest to bardzo proste, do tego przy okazji uczysz się używać STL.
P-132293
« 1 »
  Strona 1 z 1