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

Funkcja do odwracania napisu

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
432 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,451 wizyt
pytanie zadane 16 maja 2015 w C i C++ przez pulpet112 Użytkownik (760 p.)
0 głosów
1 odpowiedź 1,970 wizyt
pytanie zadane 28 października 2018 w C i C++ przez Wroteq98 Nowicjusz (200 p.)
0 głosów
2 odpowiedzi 610 wizyt
pytanie zadane 19 sierpnia 2019 w C i C++ przez Mavimix Dyskutant (8,420 p.)

93,440 zapytań

142,431 odpowiedzi

322,679 komentarzy

62,802 pasjonatów

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

...