[cpp]makkelijkst strings samenvoegen

Pagina: 1
Acties:

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
hallo,

ik wil meerdere strings in een samenvoegen.. hoe gaat dat het makkelijkst, met strcat vind ik namelijk nogal lomp..

ik wil samenvoegen:

maar als ik dit dus met strcat ga doen kirjg ik 6 regels code ofzo, dat vind ik nogal lomp omdat dit met nog meer eigenschappen moet gebeuren als adres natuurlijk...
code:
1
2
3
"adress: ";
klant.adres;
"/n"

Verwijderd

Met een klein for loopje en een realloc?

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
Op maandag 20 mei 2002 19:12 schreef TimD het volgende:
Met een klein for loopje en een realloc?
me het moet toch ook wel met een regel kunne?
in delphi kan het ook heel easy in eeen regel..

  • drZymo
  • Registratie: Augustus 2000
  • Laatst online: 09-08 22:22
Op maandag 20 mei 2002 19:15 schreef THIJZEL het volgende:

[..]

me het moet toch ook wel met een regel kunne?
in delphi kan het ook heel easy in eeen regel..
Ja maar das delphi. Die heeft een string type. Mischien als je de String class van VC++ gebruikt dat het dan makelijker kan?

"There are three stages in scientific discovery: first, people deny that it is true; then they deny that it is important; finally they credit the wrong person."


  • Wortelpudding
  • Registratie: Februari 2002
  • Niet online
code:
1
2
3
"adress: ";
klant.adres;
"/n"


code:
1
sprintf(acString, "address: %s\n", klant.adres);

Voila! 1 Regel code :)...

  • jkf
  • Registratie: Oktober 2000
  • Laatst online: 21-06-2025

jkf

C++ STL heeft ook een string classe, die zou dat toch wel moeten kunnen...

P II 233 @ begane grond, rip (1997-2007), vervangen door vituele server uptime,


Verwijderd

Op maandag 20 mei 2002 19:15 schreef THIJZEL het volgende:

[..]

me het moet toch ook wel met een regel kunne?
in delphi kan het ook heel easy in eeen regel..
Misschien even de google gebruiken, maar anders maak je even snel een eigen functie met twee argumenten (2 * pointer)

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
het is voor borland c++ 3.01

  • Wortelpudding
  • Registratie: Februari 2002
  • Niet online
Op maandag 20 mei 2002 19:18 schreef MrHuge het volgende:
code:
1
2
3
"adress: ";
klant.adres;
"/n"


code:
1
sprintf(acString, "address: %s\n", klant.adres);

Voila! 1 Regel code :)...
Deze code is geschikt voor BC 3.01

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
Op maandag 20 mei 2002 19:21 schreef MrHuge het volgende:

[..]

Deze code is geschikt voor BC 3.01
char temp[100];
char temp2[2]={1,2};
sprintf(temp,"adres: ", temp2);
cout<<temp;

dit geeft bij mij alleen "adres: "

  • Wortelpudding
  • Registratie: Februari 2002
  • Niet online
Op maandag 20 mei 2002 19:28 schreef THIJZEL het volgende:

[..]

char temp[100];
char temp2[2]={1,2};
sprintf(temp,"adres: ", temp2);
cout<<temp;

dit geeft bij mij alleen "adres: "
code:
1
sprintf(temp, "adres: ", temp2);

Vervangen door:
code:
1
sprintf(temp, "adres: %s", temp2);

%s wordt door 'sprintf' gesubstitueerd met de string die je meegegeven hebt (temp2).
Zie ook de help van de sprintf functie, want de functie kan veel meer dan alleen maar dit...

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:44
Het gaat toch om C++? Dan gebruik je toch gewoon de concatenatieoperator van de string klasse?
code:
1
  "adress: "+(klant.adres)+"\n"

Voor C is inderdaad sprintf geschikt.

  • Wortelpudding
  • Registratie: Februari 2002
  • Niet online
code:
1
  "adress: "+(klant.adres)+"\n"

Kun je in dit geval beter vervangen door:
code:
1
 cout << "adress: " << klant.adres << "\n"

Dit is 'echt' C++

Verwijderd

Koop een goed boek over C++ en/of over de C++ Standard Library, en lees hoe C++ strings werken.

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
Op maandag 20 mei 2002 19:43 schreef MrHuge het volgende:
code:
1
  "adress: "+(klant.adres)+"\n"

Kun je in dit geval beter vervangen door:
code:
1
 cout << "adress: " << klant.adres << "\n"

Dit is 'echt' C++
yup maar dit werkt niet op variablen he...


trouwens dat van sprintf werkt niet met integers he?

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Op maandag 20 mei 2002 21:03 schreef THIJZEL het volgende:

[..]

yup maar dit werkt niet op variablen he...


trouwens dat van sprintf werkt niet met integers he?
werkt wel met integers... %d denk ik

  • Marcj
  • Registratie: November 2000
  • Laatst online: 16:03
Lees MSDN maar eens door :)

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
Op maandag 20 mei 2002 21:08 schreef Limhes het volgende:

[..]

werkt wel met integers... %d denk ik
werken die ook met floats?

edit: floats ipv longs..

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:34
En als je geen gebruik wilt maken van de string-class van C++, dan kun je je eigen string-class gaan schrijven en de + operator overloaden. (Maar dat is het wiel eigenlijk nog een keer uitvinden).

https://fgheysels.github.io/


  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
dit stukje code print namelijk namelijk altijd 0 uit

bet.bedrag is een float.., die 10 regels eerder via een cout wel de goede waarde uitspuugt..
code:
1
2
sprintf(temp,"prijs %d\n", bet.bedrag);
fwrite(&temp,strlen(temp), 1, printer);

  • Wortelpudding
  • Registratie: Februari 2002
  • Niet online
Op maandag 20 mei 2002 21:52 schreef THIJZEL het volgende:
dit stukje code print namelijk namelijk altijd 0 uit

bet.bedrag is een float.., die 10 regels eerder via een cout wel de goede waarde uitspuugt..
code:
1
2
sprintf(temp,"prijs %d\n", bet.bedrag);
fwrite(&temp,strlen(temp), 1, printer);
%f is voor float.
code:
1
sprintf(temp,"prijs %f\n", bet.bedrag);

Als je in de help van BC3.01 kijkt, dan vind je een goede documentatie over alle tags die je gebruiken kunt.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 07-09 08:58
Op maandag 20 mei 2002 21:03 schreef THIJZEL het volgende:

[..]

yup maar dit werkt niet op variablen he...


trouwens dat van sprintf werkt niet met integers he?
#include <sstream> en std::stringstream is your friend...

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1