Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 10 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.07.07
Prihlásený: 11.04.20
Príspevky: 51
Témy: 13
Príspevok NapísalOffline : 07.01.2011 17:42

Ahojte.Chcel by som Vas poprosit o pomoc.Chcel by som sa spytat ci je mozne mam priklad retazec "ABCD*ABCD" a teraz chcem namiesto hviezdicky dat priklad retazec "Palo",vysledok bude "ABCDPaloABCD"..Ze ci je to dako mozne.ten retazec bude alokovany ako dynamicky.Dakujem pekne.


Offline

Užívateľ
Užívateľ
C a retazec

Registrovaný: 08.03.09
Prihlásený: 06.10.20
Príspevky: 1116
Témy: 88
Bydlisko: 00100100
Príspevok NapísalOffline : 07.01.2011 17:50

pytas sa ci sa daju spajat retazce?
ak hej
Kód:
#include <stdio.h>
#include <string.h>

int main(void)
{
    char ret1[31] = "dom";
    char ret2[] = "pes";

    printf("%s",strcat(strcat(ret1," a "),ret2));

return 0;
}

strcat spoji prvy parameter s druhym a priradi ho do prveho, ktory zaroven aj vracia ako navratovu hodnotu :)







_________________
Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-)
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.07.07
Prihlásený: 11.04.20
Príspevky: 51
Témy: 13
Príspevok Napísal autor témyOffline : 07.01.2011 17:59

nie nie......mozno som to zle napisal....ja nepotrebujem spojit,to by som zvladol :),ale ja potrebujem nahradit znak hviezdicky znakmi priklad Palo,aby vysledny retazec nebol ABCD*ABCD ale aby bol ABCDPaloABCD.....ale aj tak dakujem za snahu,mozno nieco spolocne doriesime :)....


Offline

Užívateľ
Užívateľ
C a retazec

Registrovaný: 08.03.09
Prihlásený: 06.10.20
Príspevky: 1116
Témy: 88
Bydlisko: 00100100
Príspevok NapísalOffline : 07.01.2011 18:20

blizsie to popis na co presne to potrebujes
toto mozno pomoze
Kód:
#include <stdio.h>

int main(void)
{

   char ret[101] = "\0";
   int n=0;

   while(strcmp(ret,"q") != 0)
   {
       while(ret[n])
       {
           if(ret[n] == '*')
            printf("palo");
            else
            putchar(ret[n]);

            n++;
       }
       n = 0;
       scanf("%s",&ret);
   }

    return 0;
}








_________________
Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-)
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.07.07
Prihlásený: 11.04.20
Príspevky: 51
Témy: 13
Príspevok Napísal autor témyOffline : 07.01.2011 18:39

hmm toto nieje ono...toto mi vypise len to ze ked stlacim * vypise mi zadany retaz....ako som uz napisal ja potrebujem zmenit v retazci znak * na retazec "Palo"...Cize ja ho potrebujem nahradit aby som bol konkretnejsi.Aby bol vysledok z ABCD*ABCD takyto ABCDPaloABCD.....


Offline

Užívateľ
Užívateľ
C a retazec

Registrovaný: 08.03.09
Prihlásený: 06.10.20
Príspevky: 1116
Témy: 88
Bydlisko: 00100100
Príspevok NapísalOffline : 07.01.2011 18:54

toto je zrejme to co chces :roll: chyba tam dynamicka alokacia ale hlavny je princip ;)
Kód:
#include <stdio.h>
#include <string.h>

#define POCET 10

int main(void)
{
   char ret[POCET] = "\0";
   int n=0;

   scanf("%s",&ret);

       while(ret[n])
       {
           if(ret[n] == '*')
           {
               char pomr[POCET + 3] = "\0";
               int pom = n;
               strcpy(pomr,ret);
               while(pomr[++n])
                    pomr[n+3] = ret[n];

               pomr[pom] = 'p';
               pomr[pom+1] = 'a';
               pomr[pom+2] = 'l';
               pomr[pom+3] = 'o';

               printf("\n%s\n",pomr);
           }


           n++;
       }

    return 0;
}







_________________
Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-)
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.07.07
Prihlásený: 11.04.20
Príspevky: 51
Témy: 13
Príspevok Napísal autor témyOffline : 07.01.2011 23:16

no nieje to este celkom....lebo podla tvojho programu to vypada tak ze ked pole == * tak vypise zadany retazec,ale v mojom pripade by to potom prepisalo hodnotu retazca ABCD*ABCD to co je za hviezdickou...skus si to spravit takto nacitaj si retazec ABCD*ABCD a skus hviezdicku nahradit retazcom Palo a budes persne vediet o co mi ide....ale aj tak ti dakujem ze sa venujes mojmu problemu.....


Offline

Užívateľ
Užívateľ
C a retazec

Registrovaný: 08.03.09
Prihlásený: 06.10.20
Príspevky: 1116
Témy: 88
Bydlisko: 00100100
Príspevok NapísalOffline : 08.01.2011 10:32

tu to mas presne ako si chcel
Kód:
#include <stdio.h>
#include <string.h>

#define POCET 51

int main(void)
{
   char ret[POCET] = "\0";
   char pomr[POCET] = "\0";

   int n=0;

   scanf("%s",&ret);

       while(ret[n])
       {
           if(ret[n] == '*')
           {
               int pom = n;
               strcpy(pomr,ret);
               while(ret[++pom])
                    pomr[pom+3] = ret[pom];

               pomr[n] = 'p';
               pomr[n+1] = 'a';
               pomr[n+2] = 'l';
               pomr[n+3] = 'o';

               strcpy(ret,pomr);
           }

        n++;
       }

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

    return 0;
}







_________________
Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-)
Offline

Skúsený užívateľ
Skúsený užívateľ
C a retazec

Registrovaný: 24.09.06
Prihlásený: 15.07.23
Príspevky: 1427
Témy: 37
Bydlisko: Bratislava
Príspevok NapísalOffline : 08.01.2011 20:29

Co napr. takto?
Kód:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *strcrep(char *string, char this, char *that); /* replaces first occurrence of 'this' in 'string' with 'that' */

int main() {
   char *output;
   output = strcrep("ABCD*ABCD", '*', "Palo");
   printf("%s",output);
   free(output);
   return 0;
}

char *strcrep(char *string, char this, char *that) {
   int output_len, tmp_i;
   char *output, *tmp_c;
   
   output_len = strlen(string);
   output_len += strlen(that);
   output = (char *)malloc(output_len*sizeof(char));
   if (output == NULL)
      return NULL;

   tmp_c = strchr(string, this);
   if (tmp_c == NULL)
      return NULL;
   tmp_i = tmp_c - string;
   strncpy(output, string, tmp_i);
   strcat(output, that);
   strcat(output, tmp_c+1);
   
   return output;
}


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.07.07
Prihlásený: 11.04.20
Príspevky: 51
Témy: 13
Príspevok Napísal autor témyOffline : 09.01.2011 14:16

itsgoingd a reDo ďakujem za pomoc,áno to je presne to čo som potreboval...ešte raz ďakujem


Odpovedať na tému [ Príspevkov: 10 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. c# retazec

v Technológia .NET

2

1536

23.08.2009 13:19

piton55 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. malloc retazec

v Assembler, C, C++, Pascal, Java

19

773

30.01.2012 9:55

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Assembler 8086 retazec odzadu

v Assembler, C, C++, Pascal, Java

5

718

26.04.2009 13:23

bbeni Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výstup ako jeden reťazec

v PHP, ASP

1

348

09.08.2017 12:44

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako najefektívnejšie rozdelit určitý retazec

v PHP, ASP

1

368

24.06.2009 8:33

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Retazec v podmienke, jazyk C

v Assembler, C, C++, Pascal, Java

2

450

05.01.2017 19:27

eversio Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. skratit retazec na 10 znakov

v PHP, ASP

2

579

11.03.2010 18:27

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C: z getchar() do char *retazec

v Assembler, C, C++, Pascal, Java

9

996

08.10.2010 11:54

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ASEMBLER:Určte počet slov obsahujúcich reťazec ASM alebo asm

v Assembler, C, C++, Pascal, Java

7

1419

25.03.2011 10:07

dury26 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra