symfonia standard ćw XXIII str 218
Ostatnio zmodyfikowano 2013-06-05 18:32
NHFL Temat założony przez niniejszego użytkownika |
» 2013-06-04 18:20:46 wiem o tym celowo zostawilem ostatni znak NULL w spokoju aby po zapelnieniu tablicy wartości tej tablicy były traktowane jako string w przeciwnym wypadku gdy tego -1 nie będzie to pojawią się śmieci podczas wyswietlenia tablicy |
|
DejaVu |
» 2013-06-04 18:24:17 Moim zdaniem pomijasz jeden znak przed znakiem terminalnym, no ale skoro twierdzisz, że działa to możesz temat zamknąć :P |
|
seprob |
» 2013-06-05 18:32:58 Rzutem na taśmę jeszcze rozwiązanie ode mnie :): #include <iostream> #include <stdlib.h>
using namespace std;
void add_string( char string_one[], unsigned int string_one_length, char string_two[], unsigned int string_two_length );
int main() { char string_one[ 20 ] = "dupa123"; char string_two[ 10 ] = "end"; cout << "Przed: " << endl << string_one << endl; add_string( string_one, sizeof( string_one ), string_two, sizeof( string_two ) ); cout << "Po: " << endl << string_one << endl; system( "pause" ); }
void add_string( char string_one[], unsigned int string_one_length, char string_two[], unsigned int string_two_length ) { int string_one_end, string_two_end; int iterator; for( iterator = 0; iterator < string_one_length; iterator++ ) { if( string_one[ iterator + 1 ] == '\0' ) break; } string_one_end = iterator; for( iterator = 0; iterator < string_two_length; iterator++ ) { if( string_two[ iterator + 1 ] == '\0' ) break; } string_two_end = iterator; if((( string_one_end + 1 ) +( string_two_end + 1 ) ) > string_one_length ) { cout << "Drugi string jest za dlugi." << endl; exit( EXIT_FAILURE ); } for( int iterator_one = 0, iterator_two = 0; iterator_one < string_one_length; iterator_one++ ) { if( string_one[ iterator_one ] == '\0' ) { string_one[ iterator_one ] = string_two[ iterator_two ]; iterator_two++; if( string_two[ iterator_two ] == '\0' ) break; } } }
|
|
1 « 2 » |