[C++] 'Zapętlenie' tablicy do wymaganej długości
Ostatnio zmodyfikowano 2012-12-18 00:52
Luk_Jab Temat założony przez niniejszego użytkownika |
[C++] 'Zapętlenie' tablicy do wymaganej długości » 2012-12-17 22:39:03 Witam, mam straszny problem, z jedną wydawałoby się banalną czynnością. Otóż program ma wczytać znaki z klawiatury do tablicy s1, następnie wczytać znaki do tablicy s2. Jeśli ilość znaków w tablicy s2 jest większa od ilości znaków s1, to ucinam ją, jeśli jest mniejsza to mam ją zapętlić, tak długo aż jej długość będzie równa długości s1. I próbuję to zrobić na wszystkie możliwe sposoby i nie idzie. Pętla for w ogóle jej nie zapętla, pętla while zapętla ją do jakiś długości wziętych z kosmosu. Męczę się z tym już dłuższy czas i nie wiem co robię źle. Mój kod: #include <iostream>
using namespace std;
int main() { char s1[ 120 ], s2[ 120 ]; cout << "Podaj ciag s1 : " << endl; cin.getline( s1, 120 ); int dlugosc_s1 = strlen( s1 ); cout << "Podaj ciag s2: " << endl; cin.getline( s2, dlugosc_s1 + 1 ); int dlugosc_s2 = strlen( s2 ); cout << " Dlugosc S1 : " << dlugosc_s1 << endl; cout << " Dlugosc S2 : " << dlugosc_s2 << endl; int j = 0, k = 0; while(( k + dlugosc_s2 ) <= dlugosc_s1 ) { if( s2[ j ] == '\0' ) j = 0; s2[ k + dlugosc_s2 ] = s2[ j ]; j++; k++; } cout << "Dlugosc S2 po zapetleniu: " << strlen( s2 ) << endl; cout << s2 << endl; } Program działa, ale dzieją się jakieś straszne rzeczy, przykładowo wypluł: Dlugosc S1 : 14 Dlugosc S2 : 5 Po Zapetleniu Dlugosc S2: 142 Skąd 142? Byłbym bardzo wdzięczny za pomoc. |
|
jsc |
» 2012-12-17 22:47:15 Nie lepiej to zrobić na stringach i łączenie realizować przez operator +? |
|
Luk_Jab Temat założony przez niniejszego użytkownika |
» 2012-12-18 00:17:02 Problem jest tego rodzaju, że mi ten program nie jest potrzebny sam w sobie, on na tych obu tablicach realizuje później funkcję, którą umiem zrealizować tylko na tablicach. Funkcja działa, i wszystko jest ok, ale s2 musi być zapętlone do długości s1. Tylko nie mam zielonego pojęcia dlaczego to nie wychodzi, teoretycznie to powinno śmigać... |
|
Luk_Jab Temat założony przez niniejszego użytkownika |
» 2012-12-18 00:52:04 Dobra, oszukałem sam siebie :) Dalej zapętla mi ten s2, do dziwnych długości, ale kazałem mu wstawić nulla na *(s2+dlugosc_s1), i jakoś to hula. |
|
« 1 » |