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

długość stringa jako rozmiar tablicy

Ostatnio zmodyfikowano 2013-12-22 11:45
Autor Wiadomość
n1ghtmare
Temat założony przez niniejszego użytkownika
długość stringa jako rozmiar tablicy
» 2013-12-22 02:06:56
Witam
Mam problem z moim programem. Do tablicy "slowko" ma być wstawiony wyraz. Następnie długość tego wyrazu ma definiować rozmiar drugiej tablicy "myslniki", która zostaje uzupełniona tyloma znakami "-", ile liter ma wyraz z tablicy "slowko".
 
C/C++
#include <string.h>
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
    char slowko[] = "rafal";
    int a = strlen( slowko );
    char myslniki[ a ];
    cout << myslniki << endl; //wyswietlenie pustej tablicy pomoc
    int i = 0;
   
    //zamiana slowa na myslniki
    for( i = 0; i < a; i++ )
    {
        myslniki[ i ] = '-';
    }
    cout << myslniki << endl;
}

Wszystko na pozór działa, jednak podczas wyświetlania pustej tablicy "myslniki" jak i uzupełnionej, program dostawia po niej (do niej?) jakieś dodatkowe znaki. Na wyjściu otrzymuję w tym przypadku:

˙■"
-----¶@

Pierwsza linia powinna być pusta, w drugiej powinny być same myślniki.
Nie potrafię w żaden znany mi sposób pozbyć się tych dodatkowych znaków. Czy ktoś mógłby mi z tym pomóc?
Używam kompilatora DEV C++ w wersji 5.5.3, jestem początkującym programistą.
P-99778
Parapet
» 2013-12-22 08:52:51
Rozmiar tablicy musi być znany już przy kompilacji !
P-99780
n1ghtmare
Temat założony przez niniejszego użytkownika
» 2013-12-22 09:04:49
Przecież jest znany... Wynosi on tyle, ile liter ma słowo w tablicy "slowko".
Zauważyłem że problem pojawia się nawet gdy zostawię sam fragment kodu dotyczący uzupełniania tablicy "myslniki" myślnikami:
C/C++
#include <string.h>
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
    int a = 5;
    char myslniki[ a ];
    int i = 0;
    for( i = 0; i < a; i++ )
    {
        myslniki[ i ] = '-';
    }
    cout << myslniki << endl;
   
   
}
P-99781
Parapet
» 2013-12-22 09:14:38
Ale musi być podana cyfra bo to nie działa tak jak Ty myślisz.
P-99782
Parapet
» 2013-12-22 09:18:20
<< removed >>
P-99783
Parapet
» 2013-12-22 09:21:46
C/C++
int tablica[ 5 ];
int tablica[] = { 2, 10, 17, 18 }; // tablica ma rozmiar 4.[\cpp]
P-99784
n1ghtmare
Temat założony przez niniejszego użytkownika
» 2013-12-22 09:30:49
Wszystko fajnie, tylko że ja potrzebuję tablicy typu znakowego nie int. A twoja tablica ma rozmiar 5, nie 4. 4 to ty wprowadziłeś elementy.
P-99785
Parapet
» 2013-12-22 09:38:35
To jest przykład i ta druga posiada 4 elementy.
Co za problem int zmienić na char ?
P-99787
« 1 » 2
  Strona 1 z 2 Następna strona