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

symfonia standard ćw XXIII str 218

Ostatnio zmodyfikowano 2013-06-05 18:32
Autor Wiadomość
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
P-84831
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
P-84834
seprob
» 2013-06-05 18:32:58
Rzutem na taśmę jeszcze rozwiązanie ode mnie :):
C/C++
#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 ) {
    // Sprawdz gdzie sie koncza obydwa stringi
   
    int string_one_end, string_two_end;
    int iterator;
   
    // Pierwszy string
   
    for( iterator = 0; iterator < string_one_length; iterator++ ) {
        if( string_one[ iterator + 1 ] == '\0' )
             break;
       
    }
   
    string_one_end = iterator;
   
    // Drugi string
   
    for( iterator = 0; iterator < string_two_length; iterator++ ) {
        if( string_two[ iterator + 1 ] == '\0' )
             break;
       
    }
   
    string_two_end = iterator;
   
    // Sprawdz czy drugi string nie jest za dlugi aby go wstawic do pierwszego
   
    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++ ) { // Pierwsza tablica
        if( string_one[ iterator_one ] == '\0' ) { // Zacznij dodawac na koncu
            string_one[ iterator_one ] = string_two[ iterator_two ];
           
            iterator_two++;
           
            if( string_two[ iterator_two ] == '\0' ) // Koniec drugiego stringa
                 break;
           
        }
    }
}
P-84979
1 « 2 »
Poprzednia strona Strona 2 z 2