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
443
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
Perintovero 100 prosenttiin, työeläkkeet ja maataloustuet pois
Noilla eväillä lähden tasapainottamaan valtiontaloutta ja korjaamaan työntekijöiden palkkakuoppaa nostamatta työnantajie2345757Riikka runnoo: polttoöljyn hinta nousi maaliskuussa 40 prosenttia
Onko irvistelijällä sakset hävinneet, vai miksei osaa leikata polttoaineiden hintaa kansalaisten kukkarolle sopivalle ta453832Purra ryöväsi Marinin Itä.-Suomelle neuvottelemat EU-rahat
Perust vihaavat suomalaisia, mutta eritoten itäsuomalaisia. "Osa kaksikäyttörahoista on alun perin Itä- ja Pohjois-Suom323208Miksi persut hyökkäävät jatkuvasti henkilöitä päin?
Miksei persut yritä lainkaan korjata asioita, vaan koko ajan haukkuvat henkilöitä? Ei tuollaisilla turvanpieksäjillä ole563101Demariskandaali! Eveliina Heinäluoma (sdp) kahmii kaikki Hitas asunnot itselleen!
Heinäluoma on ostanut useita yhteiskunnan tukemia, hintasäännösteltyjä asuntoja itselleen! Ei ihme, että Hitas on ollut1592914Seida Sohrabi: Suomi ei ole rasistinen maa
Seidalta taas täyttä asiaa. Miksi punavihreät naiset eivät pysty samaan - no se ideologia estää. "Meillä on valitettava372753Mökkejä ostellaan nyt ihan hulluna!
Tyypilliset lainamäärät on yli 500 000€ mökkejä ostellessa eli erityisesti tuollaiset miljoonamökit on nyt suomalaisten892723Demarien sanoin kuvaamaton ahneus - Eveliina Heinäluoma vain yksi esimerkki
Mutta näin se on demari-eliitissä aina ollut, käytännössä siis nämä eliittiin kuuluvat ovat puhtaasti porvareita - Marin732419Ranskan vasemmistojohtaja tunnustaa, että väestö on vaihtumassa
ja se on vaan hyvä asia hänen mielestään. Kyseessä siis Ranskan vasemmistojohtaja Jean-Luc Mélenchon jonka puheet järkyt742060Abdullah iski Citycenterin vessassa
Miksi näitä juttuja pitää lukea lähes päivittäin? https://www.hs.fi/helsinki/art-2000011913632.html1842004