mimotego Temat założony przez niniejszego użytkownika |
[C] Przepisanie napisu od tyłu » 2016-01-10 19:33:55 Cześć, chce napisać funkcję, która bez użycia żadnej funkcji bibliotecznej ma przepisać jeden napis do drugiego. Oto co udało mi się zrobić: #include<stdio.h>
void przepisanieNapisu( char * pierwszy, char * drugi ) { int i, j = 0, index = 0; for( i = 0; pierwszy[ i ] != '\0'; i++ ) index++; j = index; for( i = 0; i <= index; i++ ) { drugi[ i ] = pierwszy[ j ]; j--; { printf( "%s", drugi ); } int main() { char napis1[] = "Programuje w .NECIE juz trzecie stulecie"; char napis2[ 200 ]; przepisanieNapisu( napis1, napis2 ); return 0; }
Jednak nie mam pojęcia dlaczego to przepisanie nie działa jak powinno. Kompilator wypisuje mi: "expected declaration or statement at the end of input" w linii 19 czyli po return w main. |
|
Gibas11 |
» 2016-01-10 20:00:42 Klamry Ci się nie zgadzają, spójrz jak strona sformatowała kod. |
|
mimotego Temat założony przez niniejszego użytkownika |
» 2016-01-10 20:06:42 Faktycznie, nie zauważyłem. Wielkie dzięki. Jednak w dalszym ciągu mój napis nie chce się przepisywać... . Może coś jest nie tak z deklaracją tablic w mainie? |
|
mateczek |
» 2016-01-10 20:08:54 |
|
mimotego Temat założony przez niniejszego użytkownika |
» 2016-01-10 20:18:36 No i działa :P Wielkie dzięki! Trochę głupio, bo błąd banalny a tak się męczyłem :| Wrzucam jeszcze poprawiony kod, może komuś się przyda. #include<stdio.h>
void przepisanieNapisu( char * pierwszy, char * drugi ) { int i, j = 0, index = 0; for( i = 0; pierwszy[ i ] != '\0'; i++ ) index++; j = index - 1; for( i = 0; i < index; i++ ) { drugi[ i ] = pierwszy[ j ]; j--; } printf( "%s", drugi ); }
int main() { char napis1[] = "Programuje w .NECIE juz trzecie stulecie"; char napis2[ 200 ]; przepisanieNapisu( napis1, napis2 ); return 0; }
|
|
mateczek |
» 2016-01-10 20:23:46 jeszcze o czymś zapomiałeś :P #include<stdio.h>
void przepisanieNapisu( char * pierwszy, char * drugi ) { int i, j = 0, index = 0; for( i = 0; pierwszy[ i ] != '\0'; i++ ) index++; j = index - 1; for( i = 0; i < index; i++ ) { drugi[ i ] = pierwszy[ j ]; j--; } printf( "%s", drugi ); }
int main() { char napis1[] = "Programuje w .NECIE juz trzecie stulecie"; char napis2[ 200 ] = "11111111111111111111111111111111111111111111111111111111111111111111111111"; przepisanieNapisu( napis1, napis2 ); return 0; } |
|
mimotego Temat założony przez niniejszego użytkownika |
» 2016-01-10 21:26:17 No tak :) Tylko jak to zrobić bez przekazania wskaźnika na rozmiar jako parametr??? |
|
mateczek |
» 2016-01-10 22:05:29 #include<stdio.h>
void przepisanieNapisu( char * pierwszy, char * drugi ) { int i, j = 0, index = 0; for( i = 0; pierwszy[ i ] != '\0'; i++ ) index++; j = index - 1; for( i = 0; i < index; i++ ) { drugi[ i ] = pierwszy[ j ]; j--; } drugi[ index ] = '\0'; printf( "%s", drugi ); }
int main() { char napis1[] = "Programuje w .NECIE juz trzecie stulecie"; char napis2[ 200 ] = "11111111111111111111111111111111111111111111111111111111111111111111111111"; przepisanieNapisu( napis1, napis2 ); return 0; } |
|
« 1 » 2 |