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

430

    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. Epäily: Räppäri yritti tappaa vauvansa.

      https://www.mtvuutiset.fi/artikkeli/epaily-mies-yritti-tappaa-vauvansa/9300728 Tämä on erittäin järkyttävä teko täysin p
      Maailman menoa
      45
      5230
    2. Onko Sanna menossa Ukrainaan viettämään vuosipäivää?

      Kun on bongattu Varsovan lentokentältä?
      Maailman menoa
      129
      1686
    3. Räppäri kuoli vankilassa

      Ei kuulemma ole tapahtunut rikosta. Sama vahinkohan kävi Epsteinille. https://www.hs.fi/suomi/art-2000011840869.html "
      Maailman menoa
      51
      1650
    4. Välillä kyllä tuntuu, että jaat vihjeitä

      Mutta miten niistä voi olla ollenkaan varma? Ja minä saan niistä kimmokkeen luulemaan yhtä sun toista. Eli mitä ajatella
      Ikävä
      15
      1609
    5. Aleksi Rytilä

      Räppäri saa haluamaansa julkisuutta.
      Kotimaiset julkkisjuorut
      14
      1305
    6. Kulukusuunnat

      Eikö kuhmolaiset iha oikiasti tiiä kumpi o vasen ja kumpi oikia? Tuolla ku liikennemerkissä näkyy nuolet ylös ja alas, v
      Kuhmo
      4
      1220
    7. No kyllä te luuserit voitte tehdä mitä vaan keskenänne, sitä en ymmärrä miksi pelaat,nainen

      Pisteesi silmissäni, edes ystävätasolla tippui jo tuhannella, kun sain selville pelailusi, olet toisen kanssa, vaikka ol
      Ikävä
      22
      1120
    8. 81-vuotias Frederik avoimena - Ei omasta mielestä kelpaa tästä syystä realityihin: "Veemäinen..."

      Junttidiscon kuninkaana tunnettu Frederik, 81, on esiintymislavoilla suvereeni tekijä. Mies on viihdyttänyt ympäri Suome
      Suomalaiset julkkikset
      17
      1057
    9. Muusikko yritti tappaa kaksiviikkoisen vauvan

      Karu epäily: Muusikko, 32, yritti tappaa kaksiviikkoisen vauvan Oulussa. IS:n selvityksen perusteella miestä ei ole syy
      Maailman menoa
      77
      1018
    10. Tynkä Eläintarha ei ole enää visiitin väärti

      Ähtärin MesiZoo on vajonnut alas. Näytillä olevien eläinten määrä on romahtanut lähemmäs -40%. Paikat ovat päässeet pah
      Ähtäri
      60
      867
    Aihe