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
429
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
Orpo: Seuraavalla hallituksella ei ole yhtään enempää rahaa
Valtiovarainministeriön virka-arvion mukaan julkisen talouden sopeutuksen tarve on noin kymmenen miljardia euroa ensi va3604842Suomen kieli hiipuu vähitellen Vantaalla
nykytahdilla jo joka kolmas vantaalainen on vieraskielinen 2030-luvun alussa. Maahanmuutto, suomalaisten alhainen synty1334243Riikan kukkaronnyöri on umpisolmussa
Kulutus ei lähde liikkeelle, koska kansalaiset eivät usko, että: – työpaikka säilyy – tulot eivät romahda – talous ei h12646Kun puolustusvoimat on huolissaan nuorison huonosta kunnosta
ajatellen varusmiespalvelusta(kun moni joutuu keskeyttään), niin johan tuli joku yliopiston vasemmistonainen selittään,2142576Jos vedetään mutkat suoraksi?
Niin kumpaan ryhmään kuulut? A) Niihin, jotka menevät edellä ja tekevät? Vai B) Niihin, jotka kulkevat perässä ja ar1042364Tanskan malli perustuu korkeaan ansioturvaan
Ja vahvoihin työllisyys- ja kotoutumispalveluihin. Suomessa Riikka on leikannut juuri näitä: palkkatukea, työttömyysturv42179Vain vasemmistolaiset ovat aitoja suomalaisia
Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.441804Tiesitkö? Kohutun L/over sarjan Juha eli Jani Volanen on tämän julkkisnaisen ex-mies!
Jani Volanen näyttelee L/over - ikuisesti minun psykologisessa trillerissä Juhaa. Mutta tiesitkö, että hän on tämän julk71569Ajattelen sinua
Ajattelen sinua joka päivä, joka hetki… Kaikkea, mitä minun olisi pitänyt sanoa sinulle, enkä osannut sanoa, kaikkea nii541421- 311376