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

Wskaźniki do tablic znaków- zadanie

Ostatnio zmodyfikowano 2013-06-30 15:08
Autor Wiadomość
Matix8741
Temat założony przez niniejszego użytkownika
» 2013-06-30 15:08:06
nie ;p już działa dzięki pekfos za motywacje do własnego działania jeszcze kod jakby ktoś był tak samo głupi i nie chciał używać biblioteki standardowej ;)
C/C++
#include <iostream>
using namespace std;
char * uwaga( char *, int );
int main()
{
    const int rozmiar = 55; //rozmiar tablicy znaków
    char tekst[ rozmiar ] = { "za 3 sek nastapi autodestrukcja " }; //przypisanie tablicy znaków tekst
    char * wsk = tekst; //ustawnienie wskaŸnika
    wsk = uwaga( wsk, rozmiar );
    for( int i = 0; i < rozmiar; i++, wsk++ )
         cout <<* wsk;
   
    return 0;
}
char * uwaga( char * zmieniacz, int ile )
{
    char * przechowywacz = new char[ ile ], uwaga[] = { "UWAGA:" }; //definicjie wka¿nika potrzebnego do skopiowania
    int g = 0; //tego co ma zmieniacz
    while( * zmieniacz != 0 )
    {
        *( przechowywacz++ ) =*( zmieniacz++ ); //wlasnie te kopiowanie
        g++;
    }
    int lol = g - 1;
    zmieniacz -= g; //reset wkazników
    przechowywacz -= g - 1;
    g = 0;
    int i = 0;
    for(; i < 6; i++, zmieniacz++, g++ )
    {
        * zmieniacz = uwaga[ i ]; //wpisywanie s³owa "UWAGA:"
    }
    while( * zmieniacz != 0 )
    {
        zmieniacz++; //"jechanie' do konca C-stringu
        i++;
        g++;
    }
    int czy = 0;
    while( i < ile )
    {
        if( * zmieniacz == 0 ) //sprawdzanie czy jest miejsce na ten tekst "UWAGA:"
             czy++;
       
        i++;
        g++;
        zmieniacz++;
    }
    zmieniacz = zmieniacz - g + 7; //znów reset, ale do miejsca za "UWAGA:"
    g = 7;
    while( lol )
    {
        *( zmieniacz++ ) =*( przechowywacz++ ); //wklejanie tekstu wczesniej skopiowanego
        g++;
        lol--;
    }
    if( czy <= 6 ) //jeœli nie bylo miejsca
    {
        zmieniacz -= 3;
        for( int i = 0; i < 3; zmieniacz++, i++ )
             * zmieniacz = '.'; //to stawiamy 3 kropki na koncu
       
    }
    zmieniacz -= g; //reset wkaŸnika na pocz¹tek
    return zmieniacz;
}

P-86622
1 2 « 3 »
Poprzednia strona Strona 3 z 3