[C++] Kopiowanie co drugiego znaku
Ostatnio zmodyfikowano 2012-12-10 17:12
Nindix Temat założony przez niniejszego użytkownika |
[C++] Kopiowanie co drugiego znaku » 2012-12-10 11:54:09 Mam takie zadanie : "Mamy dwie tablice znakowe o identycznej długości. W jednej z nich znajduje się c-string. Napisz funkcje, która przekopiuje co 2 literę z jednej funkcji do 2. To znaczy : jeśli w jedne tablicy jest tekst "instytut" to w drugiej powinien znaleźć się C-string "isyu". Poprawiałem ta funkcje i pisałem już na nowo 5 razy nie rozumiem gdzie robię błąd. Proszę was o pomoc oto kod :
#include "stdafx.h" #include <iostream>
using namespace std;
char cstring[ 80 ] = { "Witam serdecznie" }; char okrojony[ 80 ];
void przepisz_co_2( char od_c[], char do_c[] );
int _tmain( int argc, _TCHAR * argv[] ) { przepisz_co_2( cstring, okrojony ); for( int i = 0;; i++ ) { cout << cstring[ i ]; if( cstring[ i ] == 0 ) break; } cout << endl; for( int i = 0;; i++ ) { cout << okrojony[ i ]; if( okrojony[ i ] == 0 ) break; } cout << endl; system( "pause" ); return 0; }
void przepisz_co_2( char od_c[], char do_c[] ) { for( int i = 0;; i++ ) { if( i == 0 ) { do_c[ i ] = od_c[ i ]; continue; } do_c[ i ] = od_c[ i + 1 ]; if( od_c[ i ] == 0 || od_c[ i - 1 ] == 0 ) break; } }
|
|
kubawal |
» 2012-12-10 16:44:43 for( int i = 0;; i++ ) { cout << okrojony[ i ]; if( okrojony[ i ] == 0 ) break; }
|
for( int i = 0;; i++ ) { cout << cstring[ i ]; if( cstring[ i ] == 0 ) break; }
|
Co?! Co do tej funkcji robisz tak: for( int i = 0, i2 = 0; i <= strlen( od_str ); i++ ) { if(( i % 2 ) == 0 ) { do_str[ i2 ] = od_str[ i ]; i2++; } }
|
|
Nindix Temat założony przez niniejszego użytkownika |
» 2012-12-10 16:50:02 To wyświetla c-string czyli kolejne elementy tablicy, aż napotka 0, ponieważ każdy c-string jest zakończony znakiem NULL czyli 0. |
|
kubawal |
» 2012-12-10 16:52:22 To wyświetla c-string czyli kolejne elementy tablicy, aż napotka 0, ponieważ każdy c-string jest zakończony znakiem NULL czyli 0. |
CO? Wystarczy zwykłe cout << cstring << ' ' << okrojony; |
|
Nindix Temat założony przez niniejszego użytkownika |
» 2012-12-10 17:03:59 Ooo.. Nie wiedziałem dzięki. A co do funkcji to nie mogę tam używać takich funkcji jak strlen( od_str ) Jedyne operacje dozwolone są na tablicach znakowych. |
|
kubawal |
» 2012-12-10 17:09:29 Jedyne operacje dozwolone są na tablicach znakowych. |
No to se napisz jakąś funkcje strlen'o-podobną |
|
Nindix Temat założony przez niniejszego użytkownika |
» 2012-12-10 17:12:02 dobra zrobiłem jakoś void przepisz_co_2( char od_c[], char do_c[] ) { for( int i = 0, i2 = 0;; i++ ) { if(( i % 2 ) == 0 ) { do_c[ i2 ] = od_c[ i ]; i2++; } if( od_c[ i ] == 0 ) break; } }
Dzięki za pomoc udało mi się zrobić i nauczyłem się czegoś. Ciągle sobie zapominam co znaczy operator % :(Temat do zamknięcia. |
|
« 1 » |