![]() |
Hello and Welcome-tól az Egyesült Államokat, hogy az UNIX és Linux Forums? Köszönjük, hogy meglátogatta és csatlakozik Globális Közösség.
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| Magas szintű Programozás Post kérdések C, C + +, Java, SQL, és más programozási nyelvek itt. |
Több, UNIX és Linux fórum témák Ön által talált Hasznos
|
||||
| Szál | Thread Starter | Fórum | Válaszok | Utolsó hozzászólás |
| Helyettesítő változó külső kép | oneillc9 | Shell programozás és Scripting | 1 | 07-31-2008 04:12 PM |
| Helyettesítő | neyo | Shell programozás és Scripting | 1 | 03-08-2008 10:08 AM |
| Helyettesítő az értéke változó Sed | jyotipg | Shell programozás és Scripting | 1 | 09-26-2006 10:54 AM |
| Helyettesítő változó aktuális idő | jhansrod | Shell programozás és Scripting | 4 | 11-20-2005 08:20 PM |
| Helyettesítő shell változók | suds19 | Shell programozás és Scripting | 1 | 10-16-2002 09:55 AM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
helyett az egyik a másik
Van egy Linux C program vagyok írásban, hogy van egy szakasz, ahol egy nagy sztring, szükségem van arra, hogy egy kisebb karakterlánc a másikra, és az valószínűleg nem lesz azonos méretű.
Például, ha van egy szöveg: "Nowisthetimeforallgoodmen" és szeretnék helyettesítő "nagy" a "minden" a fő string méretének növekedése: "Nowisthetimeformostgoodmen" vagy helyettesítő hogy méretének növelése a fő szöveg: "Nowisthetimefornogoodmen" Azt gondoltam, lehet, hogy egyes vélemények arról, hogy mi lenne a legjobb, valami ilyesmi mellett még nehézkes módon csinálja. Már néztem a C string feladatokat lát ha van valami, ami hasznos lehet, de én nem igazán látok. Akármi segít lenne méltányol. |
|
||||
|
Itt valóban sok milyen módon teheti ezt.
A első probléma A mérete a sztring (char array). Ehhez vagy használja a rögzített hosszúságú tömb, amely kötődik a vár nem lehet túllépni (512 bytes például), vagy ha tudja a dinamikus hosszúságú memória (malloc () / calloc ()). Azt tanácsoljuk, hogy használd a malloc () csak végső megoldásként, mert lassabb / nehezebb fenntartani / hajlamos emberi hiba. A második probléma nem választotta a megfelelő módja a helyettesítés. Ha helyettesítő karaktereket az azonos méretű akkor csak csinálja, mint a közvetlen Kód:
char * p;
if ((p = strstr (array, "isthetime")) != NULL)
strncpy (p, "new chars", strlen ("new chars"));
Te harmadik probléma van, amelyek jóval az óvatosság megszüntetéséről byte '\ 0' a tömbben. Ha nem elég óvatos, lehet, hogy felülírja azt, és felejtse el a helyébe, ami viszont oda vezethet, hogy a váratlan körülmények között. PS: tudod is használ regcomp () és regexec () a minta egyezési / cserélni. |
![]() |
| Könyvjelzõk |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|