The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Hoog Niveau Programmering
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 08-21-2008
cleopard cleopard is offline
Geregistreerde gebruiker
  
 

Join Date: december 2006
Posts: 29
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.
  #2 (permalink)  
Old 08-21-2008
Shamrock shamrock is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Datum: oktober 2007
Locatie: Verenigde Staten
Posts: 750
Kijk in de strstr () en strspn () functies.
  #3 (permalink)  
Old 08-21-2008
geducht redoubtable is offline
Geregistreerde gebruiker
  
 

Join Date: Aug 2008
Locatie: Portugal
Posts: 242
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"));
en het mag geen probleem. Aan de andere kant als je de vervanging van tekens met verschillende lengtes zeggen "AAA" voor "AAAA" moet u er rekening mee dat de vervanging zal overschrijven een element in de array. Indien u wenst te houden dat element moet u de matrix in een tijdelijke array en vervolgens strncpy () weer terug naar de oorspronkelijke array na de vervanging plaatsvindt.

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.
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 07:04.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0