Przenoszenie tekstu wpisanego z palca do tablicy typu char znak po znaku
Ostatnio zmodyfikowano 2015-12-14 15:51
m4dm4x Temat założony przez niniejszego użytkownika |
» 2015-12-14 14:47:25 Problem teraz pojawił się w while'u. Nie wiem jak zapisać warunek "jeżeli obecnie przepisywany znak to spacja to wpisz w tab i spację i leć do następnego znaku". A zdawało mi się to takie proste na początku. Po prostu wziąć stringa i znak po znaku wcisnąć do tabeli, no :C |
|
carlosmay |
» 2015-12-14 15:13:10 Przepisanie 'stringa' do tablicy 'char'. for( int i = 0; i < text.size(); i++ ) tab[ i ] = text[ i ];
Swoją drogą to słabo przeanalizowany przykład z std::cin.get() . Wczytuje cały podany tekst bezpośrednio do tablicy typu 'char', bez kopiowania ze 'stringa'. Napisz konkretnie co ma robić ten program. Póki co jest zgadywanka. |
|
m4dm4x Temat założony przez niniejszego użytkownika |
» 2015-12-14 15:29:12 Program jako taki ma formatować tekst - usuwać wszystkie "niepotrzebne" spacje (przed pierwszym znakiem, po ostatnim, spacje wielokrotne). Jak tylko włożę tekst wpisany przez użytkownika do tablicy nie będę miał problemu :) Metoda powyżej ma ten sam problem - kończy wypełnianie po spacji EDIT: Zrobiłem coś takiego. Powinno działać. Ale nie działa. #include <iostream> #include <string> #include <conio.h> using namespace std; string text; string tab[ 512 ];
void wczytaj( void ) { cin >> text; } void format( void ) { for( int i = 0; i < text.size(); i++ ) { if( text[ i ] == '\0' ) { tab[ i ] = '\0'; cout << tab[ i ]; } else { tab[ i ] = text[ i ]; cout << tab[ i ]; } } }
int main() { wczytaj(); format(); return 0; }
|
|
carlosmay |
» 2015-12-14 15:47:38 cin >> text; wczytuje tylko jeden wyraz, do znaku białego. W twoim przykładzie dla zmiennej typu std::string dobrym rozwiązaniem jest std::getline(std::cin, text); . Wczytuje cały wiersz do zmiennej 'text'.
|
|
|
m4dm4x Temat założony przez niniejszego użytkownika |
» 2015-12-14 15:51:19 No to mamy winowajcę :) Działa! Pięknie dziękuję! :D |
|
1 « 2 » |