Problem s retazcem – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problem s retazcem – C / C++ – Fórum – Programujte.comProblem s retazcem – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
juruces0
Duch
3. 12. 2013   #1
-
0
-

mám napísat program do ktorého zadám vetu a on vráti vetu v opacnom poradí mam napisane toto ale stale mi ju vracia v rovnakom poradi

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "skola2.h"

int main()
{
    const int MAX=40;
    char veta[MAX];//staticke pole znakov v zasobniku

    printf("Zadaj vetu:");
    fgets(veta,MAX,stdin);
    puts(veta);
    printf("%s",veta);

    opacne(veta);


    return 0;
}

void opacne(char pole[])
{
    const int MAX=strlen(pole);
    char vetaOpacne[MAX+1];
    int i;
    int j;

    for(i=0;i<=MAX;++i)
    {
        vetaOpacne[i]=pole[j];
        --j;
    }
    printf("\n\n%s\n\n",vetaOpacne);
    return opacne;

}

Nahlásit jako SPAM
IP: 91.127.94.–
3. 12. 2013   #2
-
0
-

neinicializuješ j, současně by bylo na místě nezapomenout, že znak s hodnotou 0x00 by měl zůstat na konci řetězce.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
KIIV
~ Moderátor
+43
God of flame
3. 12. 2013   #3
-
0
-

se popravde divim, ze ti to vrati vubec neco ... neinicializujes vubec j, kdo vi kam to zapisujes... posledni znak je \0 takze ten bys teoreticky dal na zacatek (tim by to asi nemelo vypsat ani nic)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
juruces0
Duch
3. 12. 2013   #4
-
0
-

keď ho aj zainicializujem tak stale mi to nejde j=MAX 

Nahlásit jako SPAM
IP: 91.127.94.–
3. 12. 2013   #5
-
0
-

Asi by to mělo fungovat takto:

1. zjistím délku věty (funkcí strlen), poslední znak věty má index (délka - 1)
2. cyklem projedu větu, index převrácené věty dopočítávám, kopíruji znak po znaku
3. nezapomenu na konec převrácené věty umístit 0x00 (znak má index = délka)

hu

Nahlásit jako SPAM
IP: 195.178.67.–
3. 12. 2013   #6
-
0
-

   

char veta[64];
char prevracena[64];
int delka;

delka = strlen(veta);
for (i = 0; i < delka; i++)
{
  prevracena[delka - 1 - i] = veta[i];
}
prevracena[delka] = 0x00;

hu

Nahlásit jako SPAM
IP: 195.178.67.–
juruces0
Duch
3. 12. 2013   #7
-
0
-

ked to tak napisem nejde mi to tak 

Nahlásit jako SPAM
IP: 91.127.94.–
3. 12. 2013   #8
-
0
-

co nejde? Jakou chybu to píše, co to dělá?

hu

Nahlásit jako SPAM
IP: 195.178.67.–
juruces0
Duch
3. 12. 2013   #9
-
0
-

už mi to ide

Nahlásit jako SPAM
IP: 91.127.94.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 42 hostů

Podobná vlákna

Problém v C — založil Robin

Problem — založil Ghosta

Problém — založil pali6

Problem — založil roonill

Problem s LIKE — založil Lordest

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý