|
| 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/
| |
|
|