-
Fototrend
Új hozzászólás Aktív témák
-
Tottu
senior tag
-
Tottu
senior tag
Kellene még egy kis segítség:
Ez van a be.txt file-ban:
23
+
6
Nah és most, a sorokat beolvasom az fgets egyesével 1-1 tömb-be. Eldöntöm, hogy milyen műveletet is kell majd elvégezni. Ezután jönnek a gondok, mert a tomb az char típusú és így nem kapok valós eredményt. Próbáltam már típus kényszerítéssel is:
eredmeny=(char)eredmeny+(char)uj_szam; (DE így sem lett jó)
Másik gond ami felmerült: az fgets a tomb-be 0-tól kezdi feltölteni a tömb-t, de ahoz hogy összetudjam adni vagy kitudjam vonni a számokat ahoz jobbra kellene igazítani, és így a a tömb legnagyobb indexétől kellene feltölteni. Erre nincs vmi ötletetek?"A legnagyobb hiba, amit az életben elkövethetsz, az a folyamatos rettegés attól, hogy hibázni fogsz.“ - Elbert Hubbard
-
Tottu
senior tag
Sikerült átkonvertálni a számot, szóval tudok már számolni!
tomb = (int)tomb-48;
De ha van vkinek egyszerűbb ötlete akkor azt szivessen várom!
A tömb rendezés még nem megy"A legnagyobb hiba, amit az életben elkövethetsz, az a folyamatos rettegés attól, hogy hibázni fogsz.“ - Elbert Hubbard
-
gabesz82
senior tag
Sziasztok!
JAVA-ban kellene nekem segíteni. Természetesen nem ingyen. Aki keni-vágja írhat egy privit vagy mailt. Köszi Ja és sürgős lennePSN: Morfologus82
-
bdav
őstag
ha charként olvasod be akkor ha azt látod a fájlban hogy '2' akkor nem 2 fog bekerülni hanem a '2' mint karakter kódja, ezért az eltérés, ezen nem tudsz segíteni. A jobbra igazításhoz pedig vagy megszámolod hogy milyen hosszú a számod, vagy pedig megfordítva írod bele a tömbbe (tomb [0 ] lesz a legkisebb helyiértéked)
gabesz: kicsit konkrétabban miről lenne szó?
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
shev7
veterán
nem tudom mit akarsz a tombon rendezni, de ha az algoritmusod mukodne a tombon az egyik iranyban, akkor a megfelelo indexeles megvalasztasaval mennie kene a masik iranyban is.
pl ha valami ilyesmi for ciklusod van: for (i=0;i<hossz;i++)
es gondolom megy sorba tomb-n.
Akkor ket lehetoseg is van
for (i=hossz-1;i>=0;i--)
vagy a tomb helyett tomb[hossz-1-i]-t hasznalsz.
De egyebkent a tomb sorrendjet felcserelni sem nagy dolog
For (i = 0;i<hossz / 2;i++) {
x = c
c = c[hossz - 1 - i]
c[hossz - 1 - i] = x
}''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Pho3bus
tag
hello megint!!nah eldöntöttem!!saeel oldom meg a problémám!!viszont itt egy újjab kérdés!!case ágon belül hogyan lehet megoldani azt,h if utasitással megadom pl if(x>40 && x<50)akkor a case 4 ben előre megfogalmazott értékhez dobjon hozzá egy ''ven'' szót,tehát csae 4ben megvan fogalmazva a negy akkor ahhoz ha a szam kiseeb mint50 akkor adja hozzá a vent!!
[Szerkesztve] -
Tottu
senior tag
Sikerült mindegyik problémát megoldani kaptam is 2 pontot rá a 10ből!
A lényeg: ugye max 100 számjegyű lehet a (előjeles) szám és egy fileból kell beolvasni. Előszőr is a file beolvasás utána át kellett konvertálni a karakter számmá hogy számolni tudjak vele. Ezt követően beállítottam a szám előjelét (tömb 0. indexéhez írtam egy ' + ' vagy ' - '). Jött a jombra igazítás (ez lehet fölösleges volt tényleg, mert az említet strlen () függvénnyel meglehetett volna oldani, de én a ''papíros'' módszernél maradtam. Azaz jobbra kell igazítani a számokat és úgy összeadni ill. kivonni egymásból). Ha a rendezés előjel meg van jött a művelet eldöntése amit lehet variálni rendedessen (szam1 pl.: - ; szam2: - ; és a művlet is - akkor összeadás kell, és az eredménynél is történhet előjel változás, amikor a szam1 kisebb mint a szam2, stb...)"A legnagyobb hiba, amit az életben elkövethetsz, az a folyamatos rettegés attól, hogy hibázni fogsz.“ - Elbert Hubbard
-
Forest_roby
őstag
Hi!
Végülis egyszerű kérdés, csak vhogy nem jövök rá az egyszerű megoldásra....
Adott egy string-re mutató pointer: gchar* valtozonev;.
Ennek a pointernek a tartalmát szeretném összehasonlítani egy tényleges szöveggel egy if -ben -ha megegyezik akkor vmi, egyébként vmi más.
vmi ilyesmi:
if( valtozonev == ''szöveg szöveg'' )
/*-*/g_message(''-=megegyezik=-'');
.....//nem egyezik meg ág!
persze ez nem jó, de nem tudom, hogy lehetne megcsinálni jól és szépen!
Egy megoldás lehetne az, hogy strcmp -vel összehasonlítom, de nem akarok ágyúval lőni verébre.
Van más egyszerűbb/szebb megoldás?
Előre is köszi a válaszokat!-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Jester01
veterán
válasz Forest_roby #2113 üzenetére
Egy megoldás lehetne az, hogy strcmp -vel összehasonlítom, de nem akarok ágyúval lőni verébre.
Erre pedig ez a megoldás.Jester
-
MODERÁTOR
sziasztok!
a visual c++ express jó valamire? felraktam neki a p sdk is ahogy kérte de nem megy. amit a dev c simán fordít ez nem..."Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Robaj
addikt
válasz Forest_roby #2113 üzenetére
Kérdés: akkor miért írtak volna strcmp fgv-t?
Ha nem tetszik írj sajátot
[Szerkesztve] -
MODERÁTOR
jé most sikerült
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Forest_roby
őstag
Jester01, Robaj!
vhogy bonyolultnak tunt egy ( 'komolyabb' ) fv. -t hasznalni 2 szo osszehasonlitasara.-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
bdav
őstag
válasz Forest_roby #2118 üzenetére
használd csak nyugodtan, ha direkt nem kötötték ki hogy nem lehet, télleg azért rakták bele ha nagyon nem akarsz akkor kb. 4 sorban lehet írni sajátot, nem bonyolult annyira.
10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
shev7
veterán
válasz Forest_roby #2118 üzenetére
pedig ez a fv is kb azt csinalja amit te csinalnal. Osszehasonlitja karakterenkent a ket stringet. (persze elotte megnezi, hogy egyenlo-e a hosszuk)
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Jester01
veterán
persze elotte megnezi, hogy egyenlo-e a hosszuk
... ami annyira nem persze, mivel c-ben nem éri meg 2x végignézni a stringet szerintem.
MOD: meg a glibc írói szerint sem
__STRING_INLINE int
strcmp (__const char *__s1, __const char *__s2)
{
register unsigned long int __d0, __d1;
register int __res;
__asm__ __volatile__
(''cld\n''
''1:\n\t''
''lodsb\n\t''
''scasb\n\t''
''jne 2f\n\t''
''testb %%al,%%al\n\t''
''jne 1b\n\t''
''xorl %%eax,%%eax\n\t''
''jmp 3f\n''
''2:\n\t''
''sbbl %%eax,%%eax\n\t''
''orb $1,%%al\n''
''3:''
: ''=a'' (__res), ''=&S'' (__d0), ''=&D'' (__d1)
: ''1'' (__s1), ''2'' (__s2)
: ''cc'');
return __res;
}
[Szerkesztve]Jester
-
MODERÁTOR
sziasztok! tudtok valami jó textpad szerű c++ fejlesztői progit ami ingyenes ajánlani? olyat amibe be lehet állítani rendesen a compliert és hogy merre van! köszi!
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Forest_roby
őstag
okay sracok, értem és használom is a fv.-t. Eszembe nem jutott irni egy ujat, ha itt van ez amit lehet hasznalni (biztos jobban megirtak, mint amire en kepes lennek). Az egeszet azert kerdeztem meg, mert fura volt hogy ez ilyen bonyolult -persze ez velemeny kerdese. Szeretem en a c -nyelvet, meg ebben tudok a legjobban programozni es tenyleg nagyon jo, de a stringek kezelesevel az igazat megvalva nem vagyok megelegedve ( es nem en vagyok az egyetlen ). Mar a glib iroi is eszre vettek ezt, gondolom ezert az a SOK uj fv stringekre. Legtipikusabb!: ''szoveg01'' + ''szoveg02'' nem értelmes. Saját vélemény, de ezt szerintem mindenki olyan termeszetesnek gondolna, hogy ez mukodik, pedig nem : | . No mindegy, megprobalok kibekulni ezzel a dologgal es bocs -nem akartam vitat. ( az elejen tenyleg azt hittem, hogy van egyszerubb megoldas. )
-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Jester01
veterán
válasz Forest_roby #2124 üzenetére
Vita egy szál se. Szakmai vita meg különben is hasznos
A C egy viszonylag alacsony szintû nyelv, amiben (mmint magában a nyelvben) tulajdonképpen nincs is string kezelés a konstansokat leszámítva (az is csak kényelmi szolgáltatás, hogy ne karakterenként kelljen inicializálni a tömböket). Az összes mûvelet a c libraryban van. Az említett összefûzés pedig különösen problémás, hiszen az új stringnek helyett kell foglalni. Minthogy dinamikus memóriakezelés sincs (ez is a lib dolga) így ezt nem lehet megcsinálni. Ez így jó is, mert a lib cserélgetésével tetszõleges környezetben használható marad a nyelv. Enélkül bajos lenne pl. a kernelt C-ben írni.
MOD: ja és még egy dolog: mivel a C nem rejti el a részleteket a programozó már kb. ránézésre tudja, mi zajlik. Észreveszed, hogy az a string összefûzés egy bonyolult dolog lehet tehát esetleg át kellene írni olyanra a kódot, hogy kevesebbre legyen szükség (ha éppen számít a sebesség).
[Szerkesztve]Jester
-
shev7
veterán
válasz Forest_roby #2124 üzenetére
arra nem gondoltal, hogy konkretan olyan, hogy string nincsen a c nyelvben? Talan azert jottek letre ezek a fv-ek hogy lehetove tegyek a string kezelest, es nem azert, hogy megkonnyitsek?
''szoveg1''+''szoveg2'' meg erdekes kerdes. Ezt egybekent sem szeretjuk, mert ''draga'' muvelet.''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Tottu
senior tag
Működk az csak nem 100%-os. Eddig azzal (is) voltak gondok hogy a műveletijel össze vissza változhat és az nem működött rendessen, de azt kijavítottam és így kaptam 2 pontot. Tudtommal egy hiba van még, mégpedig abban az esetben amikor a művelet elvégzése után meg változik az előjel. Ekkor vmi naon cifra szám jön ki (az előjel az jó) Már többször végig próbáltam papíron is, de nem tudtam rájönni mi lehet a gond. De majd ha lesz még időm akkor leülök elé és próbálkozom.
"A legnagyobb hiba, amit az életben elkövethetsz, az a folyamatos rettegés attól, hogy hibázni fogsz.“ - Elbert Hubbard
-
shev7
veterán
pedig annyira nem bonyolult. Foleg ha egy kis vizsgalatot vegzel elotte... Ha a masodik szam elojele negativ, akkor ugye siman csereled a muveletet. Marad 4 eset: elso negativ, muvelet kivonas: egyszeru osszeadas, csak az eredmeny negativ. Elso pozitiv, muvelet osszeadas: ezzel nincs gond. A maradek ket eset: (elso negativ, muvelet osszeadas, elso pozitiv, muvelet kivonas) En elobb eldontenem, abszolutertekben melyik a nagyobb (ebbol kovetkezik, hogy mi lesz az elojel) majd a nagyobbol vonnam ki a kisebbet, igy mar a muvelet elvegzese kozben nem valtozik az elojel.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Tottu
senior tag
Pont így csináltam, nem tudom mennyire érdekel téged, de majd kicsit átrendezem a forrást és átküldöm. Ahogy megcsináltam a problémás részt, szerintem jónak kell lennie, de vmiért mégsem jó
"A legnagyobb hiba, amit az életben elkövethetsz, az a folyamatos rettegés attól, hogy hibázni fogsz.“ - Elbert Hubbard
-
RexpecT
addikt
Félig OFF:
Wifis netem van és weben kell bejelentkeznem.Na de van amikor ledob a net... én meg toltenék ... de mivel nem vagyok otthon ezertnem tudok ujra bejelentkezni. Kérdés h mennyire bonyolult egy olyan progit fejleszteni ami automatikusan felmegy es''beirja'' a jelszot ha nincs net? Vagy van ilyen progi?? plz help -
RexpecT
addikt
válasz gelencser26 #2134 üzenetére
És valami megoldás?? Ha lenne akkor kuldj mar privit ... thx
-
pawee
tag
Elkezdtem csinálni egy programot ami az síma élezetes betűket repülő ékezetté alakítja és vissza(kis és nagybetűt egyaránt átalakít).
Á -> A'
Ű -> U''
ö -> o:
a problémám az lenne hogy a switch utasításnál megadom a kar.tömb i-edik elemét szelektornak, de a case-nél már az ''á'' esetet nem fogadja el.
meg valamiért nem tudom arra is ír hiba üzit,hogy ha a az i+1 dik elemnek akarnék '' vagy ' értéket adni. én az ASCII kódokkal való operálásra gondoltam, de ott meg az nem tudom hogy hogy kell lekérni az adott karakter ASCII kódját.
viszon az átalkításnál már az i és az i+1-dik karaktert is néznem kell azt meg case szerkezettel nem lehet.
A kapott hiba üzik amiket kapok:
================================
1.)operadns of = have illegal type 'char' or 'pointer to char'
2.)operadns of == have illegal type 'char' or 'pointer to char'
:confused: :confused:
3.)Unterminated string or char const.
ha lenne vmi ötletetek, hogy hogy kellene megcsinálni, szívesen fogadnám. előre is köszönöm szépen a segítséget!!!
ha valakit esetleg megmozgatna a dolog akkor elküldhetem az eddig megírt forrástMinden input az ördögtől érkezik!
-
Forest_roby
őstag
miért nem másolod be ide? Aztán eldöntjük, hogy akarunk -e foglalkozni vele vagy nem.
Előljáróban:
assemblys trükk - xrate ( translate szlengesen ) asszem a parancs neve. Nyugi, nem assemblys megoldást akarok mondani. A lényeg az, hogy csinálhatnál egy nagy táblázatot, amiben az egyes karakterekhez egy másikat rendelsz. Ezt be a memóriába és utánna már csak a táblázaton kell keresni az adott karakter párját. Ennél gyorsabb, működő megoldást nem fogsz csinálni az tuti!
Sok sikert!
mod: mondjuk nem részleteztem a módszer lényegét, de talán nem is kell. Ha érdekel: fontos, hogy minden karakternél futtas egy keresést a táblán és cserélj, ha nem akarnál cserélni az adott helyen akkor a táblában a karakter párja saját maga...... -persze itt nem egy karakter van hanem több, ez nem lehet akadály... : )
[Szerkesztve]-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Tottu
senior tag
Elkezdtem ujra a progit, de vmi nem stimmel a beolasással:
#include <stdio.h>
#include <string.h>
FILE *fbe , *fki;
int main (){
long int eredmeny[2] , kov_szam[2];
int i;
char elojel[1] , muv[1];
fbe = fopen(''be.txt'',''r'');
fki = fopen(''ki.txt'',''w'');
fgets(elojel,1,fbe);
if (elojel[0] == '-'){
eredmeny[0]= '-';
fscanf (fbe , ''%d'' , &eredmeny[1]);
} else {
eredmeny[0]= '+';
}
printf (''%d%d'',eredmeny[0],eredmeny[1]);
scanf(''%d'',&muv);
fclose (fbe);
fclose (fki);
return 0;
}
Az benne a bibi, hogy fordítva olvassa be a számokat: pl.: 234 helyett 432."A legnagyobb hiba, amit az életben elkövethetsz, az a folyamatos rettegés attól, hogy hibázni fogsz.“ - Elbert Hubbard
-
Dufresne
addikt
Bedobom ide is hátha
Sziasztok!
Nektek profiknak biztos egyszerű, de nekem mivel nem is tanultam és igazából nincs is rá szükségem kicsit nehéz.
Szóval excel visual basic részében kéne kis progit írni, ami 1-tő 10-ig végignézi a számokat, aztán kiírja az összes páros szám átlagát, majd még kilistázza, hogy hány darab páros szám van, vagy a páros számokat konkrétan.
Tudom, hogy ez nem túl sok, szóval ha valamelyikötök lenne olyan kedves és akár priviben megoldaná nekem, annak örök hálám -
pawee
tag
válasz Forest_roby #2137 üzenetére
include <stdio.h>
int main()
{
//változók felvétele
char str_in[160], str_out[160];
int i;
//file változók felvétele
FILE *input;
FILE *output;
//fileok megnyitása
input = fopen(''be.txt'',''r'');
output = fopen(''ki.txt'',''w'');
//konvertálás
for (i=0;i <= 80;i++)
{
switch (str_in)
{
// a program első fele, a síma ékezetest átalakítjuk repülőékezetre
case ''á'' :
{
if (str_in == ''Á'')
{
str_out = ''A'';
str_out[i+1] = ''''';
}
if (str_in == ''á'')
{
str_out = ''a'';
str_out[i+1] = ''''';
}
}
case 'é'||'É' :
{
if (str_in == ''É'')
{
str_out = ''E'';
str_out[i+1] = ''''';
}
if (str_in == ''é'')
{
str_out = ''e'';
str_out[i+1] = ''''';
}
}
case 'í'||'Í' :
{
if (str_in == ''Í'')
{
str_out = ''I'';
str_out[i+1] = ''''';
}
if (str_in == ''í'')
{
str_out = ''i'';
str_out[i+1] = ''''';
}
}
case 'ö'||'Ö' :
{
if (str_in == ''Ö'')
{
str_out = ''O'';
str_out[i+1] = '':'';
}
if (str_in == ''ö'')
{
str_out = ''o'';
str_out[i+1] = '':'';
}
}
case 'ü'||'Ü' :
{
if (str_in == ''Ü'')
{
str_out = ''U'';
str_out[i+1] = '':'';
}
if (str_in == ''ü'')
{
str_out = ''u'';
str_out[i+1] = '':'';
}
}
case 'ó'||'Ó' :
{
if (str_in == ''Ó'')
{
str_out = ''O'';
str_out[i+1] = ''''';
}
if (str_in == ''ó'')
{
str_out = ''o'';
str_out[i+1] = ''''';
}
}
case 'ő'||'Ő' :
{
if (str_in == ''Ő'')
{
str_out = ''O'';
str_out[i+1] = '''''';
}
if (str_in == ''ő'')
{
str_out = ''o'';
str_out[i+1] = '''''';
}
}
case 'ú'||'Ú' :
{
if (str_in == ''Ú'')
{
str_out = ''U'';
str_out[i+1] = ''''';
}
if (str_in == ''ú'')
{
str_out = ''u'';
str_out[i+1] = ''''';
}
}
case 'ű'||'Ű' :
{
if (str_in == ''Ű'')
{
str_out = ''U'';
str_out[i+1] = '''''';
}
if (str_in == ''ű'')
{
str_out = ''u'';
str_out[i+1] = '''''';
}
}
//A program első második fele még nem írtam meg...
default:
{
str_out = str_in;
}
}
}
fflush(input);
fflush(output);
fclose(output);
}
még eléggé kezdő vagyok a dologban, de az assembly-s megoldás az tényleg jóóó. értem mit akarsz mondtani vele.
ha pl egy két dimenziós tömbbel csinálnám meg???az eélső dimenzió az ákezetes betű második meg a percsis változata és ha egyezik akkor behelyettesít, így jó szted?
csak ezzel is az a baj, hogy Á betű helyett már A' lesz mi már két kari...erre is ki kell találnokm még vmitMinden input az ördögtől érkezik!
-
Jester01
veterán
Nem lesz jó, mert az str_out tömbbe nem indexelhetsz ugyanúgy i-vel. Hiába írod, hogy str_out[i+1] a következő iterációban felülírod, mivel a ciklusfejben i++ van.
Vezess be egy másik változót, ami kimenő index.
Amúgy a táblázatos megoldás szerintem is jobb lenne.
MOD: de csak egy dimenzió kell. Az index a bemenő karakter, az elem pedig a helyettesítés. Pl ilyesmi lehet
char* tabla[255] = {0, }
tabla[(unsigned char)'á' = ''a''';
tabla[(unsigned char)'é' = ''e''';
...
Vigyázni kell, hogy unsigned char legyen, mert különben elképzelhető, hogy pont az ékezetes karakterek negatív kódot kapnak ami tömb indexelésnél nem túl hasznos.
[Szerkesztve]Jester
-
bdav
őstag
ezzel a legnagyobb baj az h. karaktert akarsz stringgel hasonlítani. u.i. ha jól látom ahogy a motor legyakta az [ i ] -t akkor ez van:
switch(str_in [i ])
{
...
case ''á''
...
namost az str_in[ i] az 1 db char típusú lesz a ''á'' viszont char* ot eredményez. ''á'' helyett 'á' kellene.
másik gáz az lesz hogy az str_outban mindig csak egy karakter kerül majd be. ráadásul ezt megcsinálod hogy str_out = ''á'' akkor az foglal szépen helyet egy egy karakter hosszú stringnek, lezárja \0-al aztán ha mögé akarsz írni akkor az hogy string_out[ 2] az nem túl szép és nem is fog működni (az 1 dolog hogy nem lefoglalt memóriaterületre írsz, de ugyis csak a \0-ig látja stringnek, ha meg azt írod felül akkor a memóriát kilistázza majd az első 0-ig )
a helyedben én írnék egy eljárást ami két char* -ot vár paraméterül és a másodikat hozzáfűzi az elsőhöz (nemtom van e ilyen beépített függvény v. nincs). Vagy használj C++-t és String osztályt
mégvalami: 2 C stringet nem tudsz ==-vel összehasonlítani, arra való az strcmp, pár hszel ezelőtt volt róla szó.
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
Forest_roby
őstag
összefűzés:
void osszefuzes(char* eleje, const char* vege){
char* uj = malloc( strlen(eleje) + strlen(vege) + 1 );
strcpy( uj, eleje );
strcat( uj, vege );
}
valami ilyesmi nem??-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Forest_roby
őstag
válasz Forest_roby #2146 üzenetére
mondjuk én ilyesmire gondoltam:
Feltöltöd a táblázatodta ugy, ahogy Jester01 mutatta:
char* tabla[255] = {0, }
tabla[ (unsigned char)'á' ] = ''a''';
tabla[ (unsigned char)'é' ] = ''e''';
stb....
...
utánna lefoglalsz egy elegendően nagy memóriaterületet (malloc) és végigmész karakterenként a szövegen, végrehajtod a cserét mindig és ezt szépen lejegyzed a memterületre -mindig hozzáfűzéssel és a végén a lefoglalt memterületeden ott lesz a szép uj szöveged!-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
bdav
őstag
válasz Forest_roby #2146 üzenetére
én így csinálnám:
void append(char* str1, char* str2)
{
int len=strlen(str1)+strlen(str2)+1;
char* temp=str1;
str1=malloc(sizeof(char)*len);
//itt valahogy belemásolod az str1be a tempet és mögéírod str2-t, akár beépített
//függvényekkel vagy egy ciklussal, lezárni ne felejtsd el
free(temp);
}
ekkor az első paraméterhez hozzáfűzi a másodikat.
ja és kimenet számára nem kell lefoglalni előre helyet, append foglal magának (ha raksz bele ellenőrzést str1 nullságára, akkor lehet így:
char* str=null;
append(str, ''akarmi'' /*ide jöhet változónév is */ );
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
pawee
tag
válasz Forest_roby #2147 üzenetére
thx mindenkinek, asszem menni fog, minnyárt neki állok, majd eccer leisszuk egy pár sörrel...
MOD: persze, ha van még esetleg vmi építő ötlet, szívsen fogadom
[Szerkesztve]Minden input az ördögtől érkezik!
-
Forest_roby
őstag
jah, van!
A lefoglalt memóriaterületet amikor kezded feltölteni szöveggel az trükkös rész. Lehet egyszerűen csinálni és lehet jól csinálni. ha minden ciklusban megkeresed a szöveg végét az nem tul hatékony eljárás lenne. A lefoglalt memóriaterület pointerét le kellene másolni és minden ciklusban növelni az értékét annak megfelelően, hogy 1 karakterrel nőt elötte a szöveg v 2 -vel. igy mindig jó helyen állna a pointer. Kiváncsi lennék, hogy ezt hogy valósítanák ( hogy valósítanám meg? ) -érdekes feladat.... Lehet nekiálok!-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Amazon Kindle
- Kamionok, fuvarozás, logisztika topik
- Amlogic S905, S912 processzoros készülékek
- Nyíregyháza és környéke adok-veszek-beszélgetek
- A régi node-okra koncentrál a szankciók miatt Kína
- Magga: PLEX: multimédia az egész lakásban
- Azonnali VGA-s kérdések órája
- Windows 11
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Facebook és Messenger
- További aktív témák...
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5