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
411
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
Duunarit hylkäsivät vasemmistoliiton, siitä tuli feministinaisten puolue
Pääluottamusmies Jari Myllykoski liittyi vasemmistoliittoon, koska se oli duunarien puolue. Sitä samaa puoluetta ei enää2075140Olen väsynyt tähän
En osaa lopettaa ja koen huonoa omaatuntoa tästä. Kaikki on muutenkin turhaa ja tekemisesi sattuvat. Tunteita on vain hy424689Oppiiko vasemmistolaiset valehtelun jo kotonaan?
Sillä vasemmistolaiset/äärivasemmistolaiset valehtelee ja keksii asioita omasta päästään todella paljon. Esim. joku vas2022759Seuraava hallituspohja - Kokoomus, kepu, persut + KD
Kokoomus saa ainakin 20% kannatuksen ensi vaaleissa, keskusta sanoisin noin 15%, persut todennäköisesti enemmän, ehkä 171352338- 651972
Maailman laiskin eläin: persu
Persu ei ole eläessään laittanut rikkaa ristiin itsensä elättämiseen. Luonnossa tuollainen ei olisi mahdollista, mutta s1121851- 671804
- 2081674
Miksi et voi tutustua minuun irl?
Vastaa yleisellä tasolla/ympäripyöreästi, jos pelkäät tunnistamisia.1521242Martina tienaa itse rahansa
Ei tarvitse anella elättäjältään rahaa, ruokaa ja laukkuja.244985