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

[C] Tworzenie dwuwymiarowej tablicy znaków

Ostatnio zmodyfikowano 2012-04-22 10:34
Autor Wiadomość
Ada
Temat założony przez niniejszego użytkownika
[C] Tworzenie dwuwymiarowej tablicy znaków
» 2012-04-21 12:28:04
Witam serdecznie,

dopiero uczę się programowanie i mam problem z takim zadaniem (dokładnie to tylko z jego częścią):

Napisz program, który przepisze tekst z wejścia na wyjście i w trakcie działania przytnie długie linie do 52 znaków. Liczba znaków w tekstach wejściowych zawiera się w przedziale 1..5000.


Wejście
3 (wczytanie ile będzie linii tekstu)
aoisufdyadogfhadwgoairugrehtjdgfasgiaudghadohagoikdaghlzkg
sfdhsaufdfjasfaksfhasifuyeatruyteoiaysfHADOIFPSAUFOSYOIAiuOIOJSAPFFAKSF
1243fdsasfasf72r4fasf

Wyjście:
aoisufdyadogfhadwgoairugrehtjdgfasgiaudghadohagoikda
sfdhsaufdfjasfaksfhasifuyeatruyteoiaysfHADOIFPSAUFOS
1243fdsasfasf72r4fasf

Z przycinaniem znaków jakoś sobie poradziłam, problem jest tylko z odpowiednim wyglądem mojego wejścia i wyjścia. Program powinien działać tak:
1. Wczytanie ilości linijek tekstu
2. Wczytanie tekstu
3. Przycięcie za długich linii
4. Wypisanie tekstu

A mój program działa tak
1. Wczytuje ilość linijek tekstu
2. Wczytuje pierwszą linie
3. Wypisuje pierwszą linie (przyciętą lub nie w zależności od ilości znaków)
4. Wczytuje kolejną linie
5. I znów wypisuje
I tak aż zeskanuje podaną ilość linijek

Domyślam się że należałoby stworzyć tablicę dwuwymiarową i w pętli najpierw ją wczytać a potem wypisać. Problem polega na tym że nie znamy długości linii dlatego nie wiem jak to zadeklarować i jak zapisać pętlę...

próbowałam czegoś takiego:


C/C++
int t; //liczba testów

scanf( "%i", & t );

char slowo[ i ][ MAX ]; //MAX jest maksymalną liczbą znaków w linii do wczytania czyli 1500

for( i = 0; i < t; i++ )
{
    for( j = 0; j <( nie wiem od czego ); j++ ) // nie mam pojęcia jak to zapisać jak to zapisać
    scanf( "%s", & slowo[ i ][ j ] )
}



Bardzo proszę o pomoc, może być na dowolnym przykładnie, może być nawet takie coś:
2
aa
bbb

i wypisuje
aa
bbb


Będę bardzo wdzięczna!
P-54943
xevuel
» 2012-04-21 12:33:54
[cpp]...[/cpp]
C/C++
int ile = 0;
cin >> ile;
int * array = new int[ ile ];
for( int i = 0; i < ile; i++ )
{
    //Wczytaj dane do array
}
//Obetnij dane
for( int i = 0; i < ile; i++ )
{
    //Wypisz dane z tablicy array
}
delete[] array;
P-54945
Ada
Temat założony przez niniejszego użytkownika
» 2012-04-21 12:46:12
Tylko, że ja mam napisać to w C więc operator new tu nie zadziała...

i jak mam tablice znaków char to jak mogę napisać int * array? Jest konflikt typów w tedy...
P-54950
xevuel
» 2012-04-21 12:48:55
To było coś w rodzaju pseudokodu, nie potrafisz zmienić int na char?

W takim razie użyj » standard Cmalloc i » standard Cfree.
P-54951
Ada
Temat założony przez niniejszego użytkownika
» 2012-04-22 10:34:42
Dzięki, już działa:)
P-54982
« 1 »
  Strona 1 z 1