[ 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 | 13
NapísalOffline : 07.01.2011 17:42 | C a retazec

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 | 88
Bydlisko: 00100100
NapísalOffline : 07.01.2011 17:50 | C a retazec

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 | 13
Napísal autor témyOffline : 07.01.2011 17:59 | C a retazec

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 | 88
Bydlisko: 00100100
NapísalOffline : 07.01.2011 18:20 | C a retazec

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 | 13
Napísal autor témyOffline : 07.01.2011 18:39 | C a retazec

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 | 88
Bydlisko: 00100100
NapísalOffline : 07.01.2011 18:54 | C a retazec

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 | 13
Napísal autor témyOffline : 07.01.2011 23:16 | C a retazec

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 | 88
Bydlisko: 00100100
NapísalOffline : 08.01.2011 10:32 | C a retazec

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 | 37
Bydlisko: Bratislava
NapísalOffline : 08.01.2011 20:29 | C a retazec

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 | 13
Napísal autor témyOffline : 09.01.2011 14:16 | C a retazec

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


 [ Príspevkov: 10 ] 


C a retazec



Podobné témy

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

malloc retazec

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

19

833

30.01.2012 9:55

Fico

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

c# retazec

v Technológia .NET

2

1572

23.08.2009 13:19

piton55

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

Assembler 8086 retazec odzadu

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

5

764

26.04.2009 13:23

bbeni

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

Výstup ako jeden reťazec

v PHP, ASP

1

382

09.08.2017 12:44

BX

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

ako najefektívnejšie rozdelit určitý retazec

v PHP, ASP

1

396

24.06.2009 8:33

Ďuri

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

Retazec v podmienke, jazyk C

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

2

481

05.01.2017 19:27

eversio

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

skratit retazec na 10 znakov

v PHP, ASP

2

612

11.03.2010 18:27

1daemon1

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

1028

08.10.2010 11:54

Blackshadow

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

1464

25.03.2011 10:07

dury26



© 2005 - 2024 PCforum, edited by JanoF