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

Przenoszenie tekstu wpisanego z palca do tablicy typu char znak po znaku

Ostatnio zmodyfikowano 2015-12-14 15:51
Autor Wiadomość
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
P-141950
carlosmay
» 2015-12-14 15:13:10
Przepisanie 'stringa' do tablicy 'char'.
C/C++
for( int i = 0; i < text.size(); i++ )
     tab[ i ] = text[ i ]; // kopiuje cały tekst znak po znaku

 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.
P-141952
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.
C/C++
#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 ];
        }
       
    }
   
    /*const char*tab=text.c_str();
            for(int i = 0;i<text.size();i++)
                {
                cout <<tab[i];
                }*/
}

int main()
{
    wczytaj();
    format();
    return 0;
}
P-141953
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'.
P-141956
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
P-141957
1 « 2 »
Poprzednia strona Strona 2 z 2