Wykropkowanie wyrazów
Ostatnio zmodyfikowano 2015-05-15 11:15
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: #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. |
|
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. |
|
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. |
|
« 1 » |