Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Autor | Správa |
---|
Registrovaný: 10.07.07 Prihlásený: 11.04.20 Príspevky: 51 Témy: 13 | 13 |
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.
|
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
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!
;-) |
|
Registrovaný: 10.07.07 Prihlásený: 11.04.20 Príspevky: 51 Témy: 13 | 13 |
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 ....
|
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
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!
;-) |
|
Registrovaný: 10.07.07 Prihlásený: 11.04.20 Príspevky: 51 Témy: 13 | 13 |
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.....
|
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
toto je zrejme to co chces 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!
;-) |
|
Registrovaný: 10.07.07 Prihlásený: 11.04.20 Príspevky: 51 Témy: 13 | 13 |
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.....
|
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 |
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!
;-) |
|
Registrovaný: 24.09.06 Prihlásený: 15.07.23 Príspevky: 1427 Témy: 37 | 37 Bydlisko: Bratislava |
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; }
|
|
Registrovaný: 10.07.07 Prihlásený: 11.04.20 Príspevky: 51 Témy: 13 | 13 |
itsgoingd a reDo ďakujem za pomoc,áno to je presne to čo som potreboval...ešte raz ďakujem
|
|
Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Assembler, C, C++, Pascal, Java | 19 | 833 | 30.01.2012 9:55 Fico | | v Technológia .NET | 2 | 1572 | 23.08.2009 13:19 piton55 | | v Assembler, C, C++, Pascal, Java | 5 | 764 | 26.04.2009 13:23 bbeni | | v PHP, ASP | 1 | 382 | 09.08.2017 12:44 BX | | v PHP, ASP | 1 | 396 | 24.06.2009 8:33 Ďuri | | v Assembler, C, C++, Pascal, Java | 2 | 481 | 05.01.2017 19:27 eversio | | v PHP, ASP | 2 | 612 | 11.03.2010 18:27 1daemon1 | | v Assembler, C, C++, Pascal, Java | 9 | 1028 | 08.10.2010 11:54 Blackshadow | | v Assembler, C, C++, Pascal, Java | 7 | 1464 | 25.03.2011 10:07 dury26 |
|