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

398

    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. Yritykset verolle ja yritystuet 10 mrd. eur/v pois

      Kiristämistapauksissa yrityksille sanotaan hei hei. Suomi ei tarvitse yhteiskunnan rahoilla "yrittämistä". Yhteiskunta v
      Maailman menoa
      194
      2625
    2. Riikan perintö: ennätysvelka, ennätystyöttömyys ja ennätysverotus

      Tavallisen keskituloisen suomalaisen verotus on kireintä vuosikymmeniin, ja ensi vuonna palkansaajien käteen jää vieläki
      Maailman menoa
      41
      2510
    3. Sannalta jälleen fiksu lausunto johtamisesta

      "I used to think the best argument would win – but real leadership means listening, understanding where people come from
      Maailman menoa
      64
      2197
    4. Mikä on sinun ja kaivattusi ikä

      💕💕💕💕
      Ikävä
      114
      2195
    5. Riikka se runnoo työttömyyttä lisää

      Menkää töihin! "15–74-vuotiaiden työttömyysasteen trendiluku oli lokakuussa 10,3 prosenttia. Työttömiä oli yhteensä 276
      Maailman menoa
      71
      2065
    6. Sanna Antikainen (ps) : Vornasen pyssy suututti demarit

      https://www.suomenuutiset.fi/sanna-antikaisen-kolumni-vornasen-pyssy-suututti-demarit-mutta-kuka-puhuu-totta/ Vornasen
      Maailman menoa
      40
      2060
    7. Hallinto-oikeus totesi Sysmän kunnanjohtajan potkut laittomiksi (YLE Lahti 24.11.2025)

      Että näin sitten: Hallinto-oikeus totesi Sysmän kunnanjohtajan potkut laittomiksi – valtuuston päätös nurin ja 50 000 la
      Sysmä
      70
      1491
    8. Onko sulla jotain

      Suunnitelmia?
      Ikävä
      138
      1339
    9. Poistettuun aloitukseen

      Ei se mulle ollut varmastikaan. En usko vaik sille tuntuukin että oisit voinut olla eräs. Mut niin mäkin pelkään. Ei
      Suhteet
      24
      1167
    10. Vaikeneminen

      Tylsää kun nainen meni kuoreen 🫤
      Ikävä
      63
      1078
    Aihe