Tekstin korvaaminen C:ssä

mitenmiten

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

3

424

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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.html

      • Pää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

    1. Kiva kun SDP alkaa hallitsemaan Suomea

      Vanhat hyvät ajat taas palaavat ja kansa vaurastuu. Muistatteko vielä Sorsan aikakauden? Silloin Suomessa tehtiin jopa
      Maailman menoa
      132
      4349
    2. SDP:n lyhyt selviytymisopas

      1. Komitea on vastaus, oli kysymys mikä tahansa Jos maailma on muuttumassa tai jossain palaa, demari ei hätiköi. Ensin p
      Maailman menoa
      76
      3615
    3. Keskisen kyläkaupassa Temun vaatteita myynnissä?

      Siis mitä? Miksi siis ei itse tilaisi Temusta samoja.
      Maailman menoa
      68
      2240
    4. SÄ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ähk
      Maailman menoa
      222
      1694
    5. Toivoisitko

      Toivoisitko, että kaivattusi olisi introvertimpi tai extrovertimpi? Itsenäinen tai tarvitsisi enemmän apua/sinua? Osoit
      Ikävä
      118
      1587
    6. Venäläiset varkaudessa

      Ja venäjä mieliset. Teitä kiinnostaa toisinajattelijat ja trafikista päätellen aika paljonkin. Kunhan aika koitaa tulee
      Varkaus
      247
      1136
    7. Lupajaoston esityslista

      Ilmoitus rakennusvalvonntaan luvattomasta rakentamisesta. esityslistan 6pykälä Kyse on kulttuuritalon rakentamisesta jo
      Pyhäjärvi
      49
      795
    8. Haluaisitko kaivattusi

      kanssa ensiksi seksiä ja sen jälkeen puhumista?
      Ikävä
      62
      746
    9. 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 rinnall
      Euroviisut
      20
      736
    10. Unelmoitko asumisesta ja elämisestä tai lomasta Lapissa?

      Unelmoitko Lapista, ja ehkä voisit asua ja elääkin siellä? Lappi kiehtoo niin suomalaisia kuin ulkomaalaisiakin: lumi,
      Sinun unelmalomasi
      6
      725
    Aihe