• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja do odwracania napisu

0 głosów
493 wizyt
pytanie zadane 3 maja 2019 w C i C++ przez DobryKurczak Bywalec (2,320 p.)

Witam.

Mam za zadanie zrobić funkcję, która po podaniu dowolnego napisu odwróci mi go. Kod wygląda następująco:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void odwroc(char* s) {
	int len = 0;

	while (s[len++]);
	len -= 2;


	for (int i = 0, buff; i < (len + 1) / 2; i++) {
		buff = s[len - i];
		s[len - i] = s[i];
		s[i] = buff;
	}
	printf("%s", *s);
}

 void main() {

	 char napis;
	 printf("Podaj dowolny ciag znakow");
	 scanf("%s", &napis);
	 odwroc(&napis);

 }

Po kompilacji uruchamia mi się wiersz poleceń, wydaje się, że program działa. Jednak po podaniu napisu wyskakuje mi komunikat: "Program przestał działać" i nie rozumiem co tutaj nie działa. Czy mógłby ktoś wytłumaczyć co tutaj źle napisałem. Z góry dziękuję za pomoc! :)

1 odpowiedź

+1 głos
odpowiedź 3 maja 2019 przez RafalS VIP (122,820 p.)
wybrane 3 maja 2019 przez DobryKurczak
 
Najlepsza

Twój napis to pojedynczy char. Potrzebujesz tablicy charów:

char napis[100];

Powywalać ampersandy skoro to już wskaźnik:

scanf("%s", napis);
odwroc(napis);

i tutaj gwiazdkę:

printf("%s", s);

 

komentarz 3 maja 2019 przez DobryKurczak Bywalec (2,320 p.)
Dzięki, teraz działa!

A czy dałoby się zamiast statycznej długości tablicy na taką tablicę żeby nie zajmować niepotrzebnie miejsca jeśli ten ciąg znaków jest mały lub jak mamy bardzo długi ciąg znaków przewyższający te liczbę 100? Jeśli tak to jak?
komentarz 3 maja 2019 przez DeBos123 Nałogowiec (44,950 p.)
edycja 15 marca 2021 przez DeBos123

Mógłbyś to zaimplementować w podobny sposób jak tutaj: [REDACTED]

Jeżeli potrzebujesz objaśnienia czegokolwiek odnośnie tego kodu to pisz.

Podobne pytania

0 głosów
2 odpowiedzi 10,738 wizyt
pytanie zadane 16 maja 2015 w C i C++ przez pulpet112 Użytkownik (760 p.)
0 głosów
1 odpowiedź 2,083 wizyt
pytanie zadane 28 października 2018 w C i C++ przez Wroteq98 Nowicjusz (200 p.)
0 głosów
2 odpowiedzi 725 wizyt
pytanie zadane 19 sierpnia 2019 w C i C++ przez Mavimix Dyskutant (8,470 p.)

93,631 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...