Miten C:ssä voi korvata tekstiä jossakin merkkijonossa, C :lle löysin tällaisen esimerkin, mut C:lle en löytänyt ohjeita.
#include
#include
using namespace std;
int main () {
string Teksti = "The Lord of the Rings";
Teksti.replace (Teksti.find ( "Lord"), 4, "lord" );
cout
Tekstin korvaaminen C:ssä
3
424
Vastaukset
- Keijo
Jotensakkin tälleen menee "vastaava" koodi.
Tarkistuksia ei tehdä. Funktio strstr() palauttaa NULL jos alimerkkijonoa ei löydy, jolloin ilman tarkistuksia menee asiat pieleen..
#include
#include
int main(int argc, char *argv[])
{
char *merkkijono = "The Lord of the Rings";
strncpy(strstr(merkkijono, "Lord"), "lord", 4);
printf("%s\n", merkkijono);
}
Hyvää lunttausapua merkkijonoihin liittyen:
http://www.cppreference.com/stdstring.htmlPääsääntöisesti strcpy/strncpy kopioi vielä NULL-merkin loppuun, joten merkkijono voi tavallaan lyhentyä, jos ollaan korvaamassa sanaa merkkijonon alusta. Tässä tapauksessa homma toiminee, koska strncpy:lle annetaan 4, joka on muutettavan sanan pituus ilman NULLia (strncpy ei kopioi NULLia, koska sitä ei tule vastaan viimeistään neljännen merkin kohdalla). Lisäksi strncpy-temppu toiminee helposti vain niille korvauksille, joissa muunnettavan sanan pituus on yhtä paljon kuin muutetun sanan pituus.
- ccode
Ei tällaista koodia saa kirjoittaa. Standardin mukaan
toiminta on määrittelemätön.
/* tätä merkkijonoa ei voi muokata */
char *merkkijono = "The Lord of the Rings";
/* tätä voi muokata */
char merkkijono[] = "The Lord of the Rings";
/* tätä voi muokata */
char *merkkijono = strdup("The Lord of the Ring");
/*
* tässä kirjoitetaan vakiomerkkijonon päälle
* jos tilanvaraus tehdään väärin.
*/
strncpy(strstr(merkkijono, "Lord"), "lord", 4);
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Kiva kun SDP alkaa hallitsemaan Suomea
Vanhat hyvät ajat taas palaavat ja kansa vaurastuu. Muistatteko vielä Sorsan aikakauden? Silloin Suomessa tehtiin jopa1324349SDP:n lyhyt selviytymisopas
1. Komitea on vastaus, oli kysymys mikä tahansa Jos maailma on muuttumassa tai jossain palaa, demari ei hätiköi. Ensin p763615Keskisen kyläkaupassa Temun vaatteita myynnissä?
Siis mitä? Miksi siis ei itse tilaisi Temusta samoja.682240SÄHKÖLASKU 1600 EUROA Ei tässä ole mitään järkeä
https://www.is.fi/taloussanomat/art-2000011804443.html Kyllä täysin huijausta nämä sähkömarkkinat. Varsinkin pörssisähk2221694Toivoisitko
Toivoisitko, että kaivattusi olisi introvertimpi tai extrovertimpi? Itsenäinen tai tarvitsisi enemmän apua/sinua? Osoit1181587Venäläiset varkaudessa
Ja venäjä mieliset. Teitä kiinnostaa toisinajattelijat ja trafikista päätellen aika paljonkin. Kunhan aika koitaa tulee2471136Lupajaoston esityslista
Ilmoitus rakennusvalvonntaan luvattomasta rakentamisesta. esityslistan 6pykälä Kyse on kulttuuritalon rakentamisesta jo49795- 62746
Jorma Uotinen UMK-juontajaksi! Mitä ajatuksia UMK-pesti herättää?
Professori, laulaja, koreografi ja TTK-tuomari Jorma Uotinen, 75, on yksi tämän vuoden UMK-juontajista. Uotisen rinnall20736Unelmoitko asumisesta ja elämisestä tai lomasta Lapissa?
Unelmoitko Lapista, ja ehkä voisit asua ja elääkin siellä? Lappi kiehtoo niin suomalaisia kuin ulkomaalaisiakin: lumi,6725