długość stringa jako rozmiar tablicy
Ostatnio zmodyfikowano 2013-12-22 11:45
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". #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; int i = 0; 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ą. |
|
Parapet |
» 2013-12-22 08:52:51 Rozmiar tablicy musi być znany już przy kompilacji ! |
|
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: #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; }
|
|
Parapet |
» 2013-12-22 09:14:38 Ale musi być podana cyfra bo to nie działa tak jak Ty myślisz. |
|
Parapet |
» 2013-12-22 09:18:20 << removed >> |
|
Parapet |
» 2013-12-22 09:21:46 int tablica[ 5 ]; int tablica[] = { 2, 10, 17, 18 };
|
|
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. |
|
Parapet |
» 2013-12-22 09:38:35 To jest przykład i ta druga posiada 4 elementy. Co za problem int zmienić na char ? |
|
« 1 » 2 |