/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
C++ String, fjerne linjeskift
Fra : Dennis Hansen


Dato : 28-08-01 13:51

Hej,
Jeg prøver lige i denne newsgroup da det nok er den rigtige for mit
spørgsmål:

Findes der en funktion i C++ der fjerner alle linjeskift fra en string.
Det er under windows så jeg formoder det er \r\n jeg gerne vil have
fjernet fra strengen ?

På forhånd tak,
Mvh

Dennis





 
 
Mogens Hansen (28-08-2001)
Kommentar
Fra : Mogens Hansen


Dato : 28-08-01 14:01


"Dennis Hansen" <dennis__hansen@hotmail.com> wrote in message
news:3b8b93b9$0$281$edfadb0f@dspool01.news.tele.dk...
>
> Findes der en funktion i C++ der fjerner alle linjeskift fra en string.
> Det er under windows så jeg formoder det er \r\n jeg gerne vil have
> fjernet fra strengen ?
>

Du kan bruge std::remove:

#include <string>
#include <algorithm>
#include <iostream>

int main(void)
{
using namespace std;

string s("a\nb\nc\nd\ne\nf\ng");

cout << s << endl;
s.erase(
remove(s.begin(), s.end(), '\n'),
s.end());
cout << s << endl;

return 0;
}


Venlig hilsen

Mogens Hansen



Dennis Hansen (28-08-2001)
Kommentar
Fra : Dennis Hansen


Dato : 28-08-01 21:00

"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:3b8b95fe$1@lxcs1.manbw.dk...
>
> Du kan bruge std::remove:

cut code
> s.erase(
> remove(s.begin(), s.end(), '\n'),
> s.end());
> cout << s << endl;

Mange tak, det virkede jo perfekt !

Jeg har stadig et problem med min streng, der er et meget mystisk tegn
(flere steder) når jeg åbner tekst filen
som jeg har skrevet strengen ud i.

Det ligner en lille firkant, de er alle de steder hvor der var linjeskift
før.
Hvis jeg kopierer dette tegn ind i denne mail, får jeg et linjeskift istedet
for firkanten, så jeg tror det stadig ligger noget
og ulmer i den streng.

Nogen ide om hvilket tegn dette er, og hvordan jeg skaffer mig af med det ?

Ps.
tak til Bertel også-






Dennis Hansen (28-08-2001)
Kommentar
Fra : Dennis Hansen


Dato : 28-08-01 21:06

"Dennis Hansen" <dennis__hansen@hotmail.com> wrote in message
news:3b8bf837$0$280$edfadb0f@dspool01.news.tele.dk...
> Nogen ide om hvilket tegn dette er, og hvordan jeg skaffer mig af med det
?

Undskyld, den svarer jeg lige selv på.
Jeg skal bare køre funktionen en gang til, denne gang med 'r' som parameter.
Mvh
Dennis




Bertel Lund Hansen (28-08-2001)
Kommentar
Fra : Bertel Lund Hansen


Dato : 28-08-01 16:45

Dennis Hansen skrev:

>Findes der en funktion i C++ der fjerner alle linjeskift fra en string.
>Det er under windows så jeg formoder det er \r\n jeg gerne vil have
>fjernet fra strengen ?

Hvis du ved at det kun er tegn i slutningen af linjen, og du ved
hvor mange der er (in casu 2), så kan en ren C-operation klare
det:

#include <string.h>

   linje[strlen(linje)-2]=0;

Løsningen er baseret på at tekststrenge i C er nulterminerede.

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste