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

Řetězec – C / C++ – Fórum – Programujte.comŘetězec – C / C++ – Fórum – Programujte.com

 

Clin
~ Anonymní uživatel
3 příspěvky
4. 12. 2012   #1
-
0
-

Zdravím vás,

mám napsat program, který z řetězce ubere od určitého indexu určitý počet znaků a řetězec vypíše. Mám tohle a někde mi to tam hapruje:

void vyradText(char *str, int pocet, int index){
    char *zstr;
    int i;

    str = (char*)malloc(7);

    str[0] = 'l';
    str[1] = 'e';
    str[2] = 'b';
    str[3] = 'e';
    str[4] = 'd';
    str[5] = 'a';
    str[6] = '\0';

    printf("Retezec je: %s", str);

    printf("\nZadej pocet: ");
    scanf("%d", &pocet);
    printf("Zadej index: ");
    scanf("%d", &index);

    for(i=index; i<pocet; i++){
        str[i] = str[i+pocet];
    }

    zstr = (char*)malloc(7-pocet);
    zstr = str;

    for(i=0; i<=sizeof(zstr); i++){
        printf("%s", zstr[i]);
    }

    free(str);
    str = NULL;
}

int main()
{
  char str;
  int pocet, index;

  vyradText(str, pocet, index);
}

Díky za pomoc.

Nahlásit jako SPAM
IP: 93.187.106.–
crazy
~ Moderátor
+10
Grafoman
4. 12. 2012   #2
-
0
-

#1 Clin

void vyradText(char *str, int pocet, int index)
{
        int i;
        char *novyStr = strdup(str);
        int puvodniDelka = strlen(str);

        for(i = index; i <= puvodniDelka-pocet; i++)
        {   
                novyStr[i] = novyStr[i+pocet];
        }   

        printf("%s\n", novyStr);

        free(novyStr);
}
Nahlásit jako SPAM
IP: 147.32.31.–
All you need is vision and time.
crazy
~ Moderátor
+10
Grafoman
4. 12. 2012   #3
-
0
-

#2 crazy
v podstatě ten řetězec nemusíš ani duplikovat.

Nahlásit jako SPAM
IP: 147.32.31.–
All you need is vision and time.
Clin
~ Anonymní uživatel
3 příspěvky
4. 12. 2012   #4
-
0
-

"Problém" je v tom, že nesmíme použít u tohoto příkladu žádnou z funkcí třídy string.

Nahlásit jako SPAM
IP: 93.187.106.–
KIIV
~ Moderátor
+43
God of flame
4. 12. 2012   #5
-
0
-

   

    zstr = (char*)malloc(7-pocet);
    zstr = str;

tady naalokujes novou pamet a pak se hned zbavis ukazatele na ni a hodis tam ukazatel na ten puvodni retezec

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Clin
~ Anonymní uživatel
3 příspěvky
4. 12. 2012   #6
-
0
-

Noo dobře, ale stejně nevím, co bych tam měl změnit, spíše teda jak bych to měl změnit.

Nahlásit jako SPAM
IP: 93.187.106.–
Tom960
Duch
4. 12. 2012   #7
-
0
-

Ahoj, 

jsem uplny zacatecnik a chtel bych se zeptat kdyz uz jste u tech retezcu, jak udelat abych si na obrazovku napsal napriklad AHOJ SVETE a dostal ho do pole[1] A pole[2] H atd ... diky

Nahlásit jako SPAM
IP: 213.192.18.–
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, 12 hostů

Podobná vlákna

Retězec — založil griddlecake

Retezec v C — založil Vojta

Retezec — založil Hlavinka

C++ - Throw řetězec — založil PizzDec

Řetězec s mezerami — založil RAJJJA

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ý