Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 gru 2024, o 10:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 6 lis 2014, o 19:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Próbuję napisać funkcję w języku C do odwracania łańcucha znakowego, niby proste ale męczę się z tym trochę czasu i nie mogę zatrybić gdzie moje myślenie jest błędne.

A więc kod funkcji:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


No i program się wysypuje już na linijce:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Proszę o jakąś poradę!

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2014, o 20:02 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

Ale tą systemową znasz? strrev().



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2014, o 20:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Nie chodzi o korzystanie z systemowych ;)

Jest to jedno z ćwiczeń z książki Stephena Praty. Pisze się w nich nawet odpowiedniki funkcji jak np. strncpy() itp. Dlatego chciałbym ruszyć dalej, a zaciąłem się na tym miejscu. Wg mnie kod jest dobry, ale wiadomo, że może mi się tylko zdawać.

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2014, o 20:14 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Co to znaczy "wysypuje się"?
Problem na pewno nie leży w tej linijce tylko w indeksach, np. już na dzień dobry druga pętla się sypnie przy łańcuchu pustym.


Autor postu otrzymał pochwałę

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2014, o 20:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Rację ma kolega xor.

Kod który działa:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zmieniłem tylko linjkę w programie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wcześniej było:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


z Niebieskim pozdRowieniem,
Doman89


------------------------ [ Dodano po: 24 minutach ]

Dla potomnych, jak by ktoś się zastanawiał, dlaczego taka różnica w działaniu.

A więc tablica ma przypisane kolejno komórki w których mieści się kolejno każdy znak typu char.
Deklarując wskaźnik na jakiś łańcuch to mamy tylko adres początku tego łańcucha (pewnie jeszcze w pamięci RAM - ale mogę się mylić ;)). Czyli zmieniając adres uzyskujemy już dostęp do zupełnie innych danych w pamięci! Taka błahostka a trochę mi zajęła ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2014, o 22:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolego Mokrowski, muszę do tego wrócić po czasie.

Na razie nie mogę tego zbytnio przetrawić ;D

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2014, o 23:05 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

mokrowski napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Hej, to jest fajne!
...ale co z pierwszym i ostatnim elementem? Inkr./dekr. wykona się po teście warunku ale przed wykonaniem instrukcji w klamrach, nieprawdaż?

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2014, o 12:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Nie przestawaj. Teraz w assemblerze :)

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2014, o 12:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


2 dlatego, że po wyjściu z pętli zadziała inkrementacja oraz pominięcie znaku zerowego tak?

Naturalnie kod działa i naprawdę pokazuje ścisły umysł programisty ;) Pytanie takie ile kolega już zajmuje się programowaniem? Kiedyś może dojdę do takiego myślenia zero jedynkowego jak kolega :lol:

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2014, o 23:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

mokrowski napisał(a):
Może zrobić dział: ,,Ćwiczenia Praty" ?:-)


Ja już mam od początku w planach udostępnić cały workspace z ćwiczeń. Robię ćwiczenia do każdego rozdziału, więc jak skończę to poleci upload. Myślę, że komuś jak się zatnie to się przyda ;) Wtedy to będzie można w jednym temacie również pytać, a wtedy to kolega będzie mógł pokazać nie jedno fajne rozwiązanie :)

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO