Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
30.11.2005, 13:41
X4RD4S



Also bei Delphi lässt sich sowas ja mit StrToChar realisieren .. aber wie kann man in Visual C++ 6 einen Char ( bspl. char test[15] ) in einen string umwandeln ?
gleichsetzen funktioniert nicht .. also z.b

stringname = test[1];

Und vor allem : Wie kann man dann alle 15 Zeichen nacheinanderfolgend in den string einfügen ?

Wäre euch dankbar wenn einer die lösung parat hat :)

--


Dieser Beitrag wurde am 30.11.2005 um 13:42 von X4RD4S bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
30.11.2005, 15:01
hausi



strcpy (und für die nächste Frage: strcat). Google hilft.

Ach ja: Ich würde dir empfehlen, ein Tutorial zu nehmen.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
30.11.2005, 15:12
theDon



Fraglich, was bei dir denn ein string ist.

Erstmal ist `char test[15]' kein Char, sondern ein char-Array mit 15 Elementen. Damit ist `test' implizit auch ein `char*', also ein Zeiger-auf-char. Das ist normalerweise das, was man in C als string bezeichnet. In C++ gibt es dann `std::string'. Das ist eine Klasse.

http://www.sgi.com/tech/stl/basic_string.html

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
003
30.11.2005, 15:45
X4RD4S



Okay thx :)
Also googlen hat NICHT geholfen ... das mal vorweg ... sonst hätte ich keinen thread erstellt.

--

zum Seitenanfang zum Seitenende Profil || Suche
004
30.11.2005, 16:04
Kriz



Quellcode:#include <iostream>
#include <string>

int main()
{
    // char Array deklarieren
    char test[15];

    // Text nach char Array kopieren
    strcpy(test, "Hallo, Welt!");

    // C++ String deklarieren
    std::string str;

    // char Array dem String zuweisen
    str = test;

    // String ausgeben
    std::cout << str << std::endl;

    return 0;
}
Sollte 'Hallo, Welt!' ausgeben. Achte auch darauf, daß du die Arbeitsweisen von char[], char*, std::string und unter VC++ ggf. der MFC Klasse CString verstehst. In C++ solltest du soweit dein Entwurf es dir erlaubt stets mit std::string arbeiten. Darauf lassen sich nämlich prima die Algorithmen und Iteratoren der STL anwenden!

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
005
30.11.2005, 16:29
CN



Zitat:
X4RD4S postete
Okay thx :)
Also googlen hat NICHT geholfen ... das mal vorweg ... sonst hätte ich keinen thread erstellt.
kommt natürlich drauf an wie man googlet, wenn mans falsch macht dann klappt das auch nich, das is klar.

--

zum Seitenanfang zum Seitenende Profil || Suche
006
30.11.2005, 16:59
Kriz



Ich empfehle traditionelle Offlinetutorials, auch bekannt unter dem vergessenen Namen "Fachbuch" ;)

Bjarne Stroustrup, The C++ programming language (Bibel)
Ulrich Breymann, Eine Einführung in C++ (Prophet)

Nur mal so als Anregung...

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
007
30.11.2005, 17:04
X4RD4S



Joa .. hab ich mir nicht geholt weil ich im grunde alles in c++ kann .. nur das war mir jetzt ein rätsel ...

also zu Kriz nochmal :
" std::string str;"

wenn man am anfang des programs
<iostream> und <string> included und
kann man auch ganz einfach mit

string test;

einen string deklarieren ...

--

zum Seitenanfang zum Seitenende Profil || Suche
008
30.11.2005, 17:08
Kriz



Nein, weil string Bestandteil des Namenraumes std ist. Ohne den :: Scope-Operator kannst du das Objekt string nicht innerhalb von std referenzieren. Möglichkeiten sind:
Quellcode:#include <string>
using namespace std; // Alles aus std nutzen

string str;
Oder
Quellcode:#include <string>

std::string str;
Oder
Quellcode:#include <string>

using std::string; // Nur string nutzen, alles andere nicht

string str;
EDIT: Und <iostream> hat nichts mit Strings zu tun, sondern ist das streambasierte I/O Modul von C++. Darin ist u.a. sowas wie std::cout (Ausgabe) oder std::endl (NewLine + Pufferflush) enthalten.

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)


Dieser Beitrag wurde am 30.11.2005 um 17:17 von Kriz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
009
30.11.2005, 18:11
theDon



Zitat:
X4RD4S postete
wenn man am anfang des programs
<iostream> und <string> included und
kann man auch ganz einfach mit

string test;

einen string deklarieren ...

VC++ 6 ist in der Hinsicht _leicht_ buggy. Legal ist das definitiv nicht.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
010
30.11.2005, 18:17
Kriz



...und außerdem errort VC++ 6 bei dieser "Syntax" massivst :)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
011
01.12.2005, 21:32
X4RD4S



seltsam .. bei mir nicht ... aber wie theDon schon sagte denke ich mal dass es einfach ein wenig buggy ist .. wobei ich im programm selbst dann auch nicht probleme mit abstürzen oder ähnlichem habe sondern auch alle operationen die auf strings bezogen sind korrekt durchgeführt werden ...

--

zum Seitenanfang zum Seitenende Profil || Suche
012
02.12.2005, 12:28
theDon



Das `buggy' bezieht sich auf die Umsetzung des C++-Standards. Der schreibt naemlich vor, dass string in std und nicht im globalen Namespace liegt.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
013
02.12.2005, 13:50
Kriz



Und eben wenn man string so referenzieren will, _ohne_ std einzubeziehen, scheißt VC++ 6 einem vor den Koffer. Zumindest bei meinem VC++ 6...

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
014
02.12.2005, 23:34
X4RD4S



joa aber es geht ja darum dass ich strings z.b mit
" string test; " deklarieren kann und ihr nicht ....

--

zum Seitenanfang zum Seitenende Profil || Suche
015
02.12.2005, 23:41
theDon



Nein. Du kannst das machen, allerdings nur, weil VC++ 6 in der Hinsicht den Standard ignoriert (und nicht nur da). Kann uebrigens sein, dass das mit irgendeinem Servicepack behoben wurde. Deshalb solltest du das besser lassen und einfach eine der konformen Alternativen benutzen.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
016
03.12.2005, 12:10
oxff



Kann ich uebrigens auch ohne VC++:

Quellcode:#include <string>
using namespace std;

/* ... /*
{
  string foo;
edit: Hm, Kriz und so... O_o

--

mwcollect - mein Projekt | oxlog - mein blog | happyhardcore.com Stream - gute Musik


Dieser Beitrag wurde am 03.12.2005 um 13:04 von 0xFF bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
017
06.12.2005, 23:59
Kriz



Sorry, wenn ich zu später Abendstunde die Pointe nicht mehr rausfiltern kann, aber _was_ willst du uns (speziell mir) jetzt damit genau sagen? Du weißt aber schon, daß es sich um das Thema
Quellcode:#include <string>

// ...
string foo;
handelt, oder? (Nur um gaaanz sicher zu gehen)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
018
08.12.2005, 13:37
oxff



Es ging mir nur darum zu zeigen, dass man aufgrund `using namespace ..' das namespace prefix auch ohne VC++ 6 weglassen kann. Dann ist mir aber aufgefallen, dass du das oben schon gezeigt hattest...

--

mwcollect - mein Projekt | oxlog - mein blog | happyhardcore.com Stream - gute Musik

zum Seitenanfang zum Seitenende Profil || Suche