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

Funkcja do odwracania napisu

Object Storage Arubacloud
0 głosów
353 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 9,729 wizyt
pytanie zadane 16 maja 2015 w C i C++ przez pulpet112 Użytkownik (760 p.)
0 głosów
1 odpowiedź 1,422 wizyt
pytanie zadane 28 października 2018 w C i C++ przez Wroteq98 Nowicjusz (200 p.)
0 głosów
2 odpowiedzi 345 wizyt
pytanie zadane 19 sierpnia 2019 w C i C++ przez Mavimix Dyskutant (8,390 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...