![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Hoog Niveau Programmering Post vragen over C, C + +, Java, SQL, en andere programmeertalen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Vervanging van de variabelen uit externe bestanden | oneillc9 | Programmeren en Shell Scripting | 1 | 07-31-2008 03:12 PM |
| vervangen | Neyo | Programmeren en Shell Scripting | 1 | 03-08-2008 10:08 |
| Vervangen met een waarde van variabele in Sed | jyotipg | Programmeren en Shell Scripting | 1 | 09-26-2006 09:54 |
| Vervanging van de variabele met de huidige tijd | jhansrod | Programmeren en Shell Scripting | 4 | 11-20-2005 08:20 PM |
| vervanging van shell-variabelen | suds19 | Programmeren en Shell Scripting | 1 | 10-16-2002 08:55 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
vervanging van een string voor een ander
Ik heb een Linux-C programma Ik schrijf dat is een punt waar, binnen een groot string, ik nodig te vervangen door een kleinere string voor een ander, en die waarschijnlijk niet zullen worden dezelfde grootte.
Bijvoorbeeld, als ik een string: "Nowisthetimeforallgoodmen" en ik wil substituut 'meest' voor 'alle' de belangrijkste string zal toenemen in omvang: "Nowisthetimeformostgoodmen" of een vervanging zal de omvang van de belangrijkste string: "Nowisthetimefornogoodmen" Ik dacht dat ik misschien nog wat adviezen over wat wellicht de beste aanpak op zoiets als dit, naast een aantal meer omslachtige manier van doen. Heb ik op de C-string functies om te zien of er een die nuttig kan zijn, maar ik heb niet echt zien. Alle hulp zou worden gewaardeerd. |
|
||||
|
Er zijn werkelijk vele manieren waarop je dit kan doen.
De eerste probleem is de grootte van uw string (char array). U kunt gebruik maken van een vaste lengte array met een gebonden die u verwacht niet wordt overschreden (512 bytes bijvoorbeeld) of je kunt werken met dynamische lengte geheugen (malloc () / calloc ()). Ik zou adviseren u gebruik te maken van malloc () alleen als laatste redmiddel, want het is trager / moeilijker te handhaven / kans op menselijke fouten. De tweede probleem is het kiezen van het geschikte manier om de vervanging. Als u ter vervanging van tekens van dezelfde grootte kon je gewoon doen rechtstreeks willen Code:
char * p;
if ((p = strstr (array, "isthetime")) != NULL)
strncpy (p, "new chars", strlen ("new chars"));
You're derde probleem is met veel voorzichtigheid met de beëindiging byte '\ 0' in uw array. Als je niet voorzichtig genoeg kunt u overschrijven en vergeten te vervangen, die op hun beurt kunnen leiden tot onverwachte omstandigheden. PS: je kunt ook gebruik maken van regcomp () en regexec () voor patroonherkenning / vervangen. |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|