Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » "char"-array einen Wert zuweisen!?!?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
27.09.2002, 13:56 Uhr
~sic
Gast


Hi
Einer "char"-Variable einen Wert zu weisen geht doch so!

char t='h';


Aber wie kann ich es machen, das ich einem "char"-Array einen Namen zuweise?

char t[10]='hallo'; //So gehts nicht.Aber wie geht es?


Also ist nur ein Beispiel.Und wie gebe ich dieses dann aus?

thx
sic
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.09.2002, 14:35 Uhr
fry_



Hallo

Wie Du das ausgibst, kommt ganz darauf an, ob in C oder
C++ programmierst? Hier gebe ich Dir erstmal die
Standard C++ Version:


C++:
#include<iostream> // für zB: cout u. cin (aus u. eingabe)

int main() {

    // Schon bei der Definition (Initialisieren)
    char t[6]={'H','a','l','l','o','\0'};
    std::cout << t << std::endl;

    // Nur einem Element zuweisen
    char s[6];
    s[4]='H';
    std::cout << s[4] << std::endl;

    // Dem ganzen Array Werte zuweisen
    char a[6];
    for (int i=0;i<sizeof(a); ++i) a[ i ]='H';
    a[ i ]='\0'; // macht aus dem Array einen String
    std::cout << a << std::endl;

    return 0;
}

--
mit computern geht alles viel schneller
es dauert nur ein bisschen länger

Dieser Post wurde am 27.09.2002 um 14:41 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.09.2002, 14:37 Uhr
~Jürgen
Gast


Es geht mit

char t[10]="Hallo";

Also richtige Anführungszeichen " statt '.

Gruss
Jürgen

PS: Ausgabe mit z.B. cout<<t<<endl;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.09.2002, 14:43 Uhr
virtual
Sexiest Bit alive
(Operator)


@fry_
Windows Programmierer, gelle. Denn nur der VC hat diesen Bug, daß

C++:
    for (int i=0;i<sizeof(a); ++i) a[ i ]='H';
    a[ i ]='\0';


funktioniert. Bei einem standardconformen Compiler ist das i nach der Schleife nicht mehr da!
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.09.2002, 14:46 Uhr
fry_



... ups, so geht es natürlich auch.
Das kommt davon, wenn man immer nur
mit std::string hantiert.
--
mit computern geht alles viel schneller
es dauert nur ein bisschen länger
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.09.2002, 15:00 Uhr
fry_



oh, virtual -> hab Dein Post net gesehen.

Zitat:
Denn nur der VC hat diesen Bug

Muss ich mir merken!

Ich war aber bei etwas anderem unsicher. Der Array ist doch
nur 6 Elemente groß u. bei der a[ i ]='\0' Zuweisung steht i bei 6.
Aber der Index von a geht nur von 0-5! Es
gab aber kein Laufzeitgeschrei u. hab mir da weiter keine
Gedanken gemacht. Aber ganz nachvollziehen, kann ich das nicht.
(Ich hoffe, ich blamiere mich jetzt nicht zu sehr?)

/Edit:
Irgendwann lerne ich es auch noch mal: [ i ] !!!
--
mit computern geht alles viel schneller
es dauert nur ein bisschen länger

Dieser Post wurde am 27.09.2002 um 15:09 Uhr von fry_ editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.09.2002, 15:11 Uhr
sic



Danke für die Antworten. Was bedeutet das "std::"?
Also ich benutze C++ und das hab ich jetzt auch geschafft.Hab aber nun ein neues Problem
Bitte sagt mir was ich machen muss, damit die Variable "char cAlkan[10]" auch ausserhalb des switch-Befehls bekannt ist bzw. der Wert der ihr gegeben wurde auch ausserhalb ausgegeben werden kann.Hoffe ihr wisst was ich meine.
*kurzvormverzweifeln*
sic

C++:
#include <iostream.h>
#include <conio.h>
int iKette;
char cAlkan[10];
int main()
{
  cout<<"Bitte geben sie die l\x84ngste Kette an ";
  cin>>iKette;

  switch(iKette)
  {
    case 1:
    {
      char cAlkan[10] = {'M','e','t','h','a','n'};
      break;
    }
    case 2:
    {
      char cAlkan[10] = {'E','t','h','a','n'};
    }
    case 3:
    {
      char cAlkan[10] = {'P','r','o','p','a','n'};
    }
    case 4:
    {
      char cAlkan[10] = {'B','u','t','a','n'};
    }
    case 5:
    {
      char cAlkan[10] = {'P','e','n','t','a','n'};
    }
    case 6:
    {
      char cAlkan[10] = {'H','e','x','a','n'};
    }
    case 7:
    {
      char cAlkan[10] = {'H','e','p','t','a','n'};
    }
    case 8:
    {
      char cAlkan[10] = {'O','c','t','a','n'};
    }
    case 9:
    {
      char cAlkan[10] = {'N','o','n','a','n'};
    }
    case 10:
    {  
      char cAlkan[10] = {'D','e','c','a','n'};
    }
    default:
    {
      cout<<"Es sind net wirklich soviele, oder?";
      break;
    }
  }
cout<<cAlkan;
getch();
}



[edit]:Code editiert.

Dieser Post wurde am 27.09.2002 um 15:14 Uhr von sic editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.09.2002, 15:13 Uhr
virtual
Sexiest Bit alive
(Operator)


Stimmt, das ist auch nicht ganz korrekt, weil - wie selbst feststellst - das i um eins übers Ziel hinausgeht: Du hast eher glück, dass Du kein "Laufzeitgeschrei" bekommst.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
27.09.2002, 15:14 Uhr
~0xdeadbeef
Gast



Zitat:
Ich war aber bei etwas anderem unsicher. Der Array ist doch
nur 6 Elemente groß u. bei der a[ i ]='\0' Zuweisung steht i bei 6.
Aber der Index von a geht nur von 0-5! Es
gab aber kein Laufzeitgeschrei u. hab mir da weiter keine
Gedanken gemacht. Aber ganz nachvollziehen, kann ich das nicht.



Bei Windows verbietet die Speicherreservierung nur, dass eine andere Applikation den Speicher reserviert, bindet sie aber nicht an ihren Speicher, und verbietet anderen Applikationen auch nicht, da rein zu schreiben. (ICH glaube, dass sie einfach kein vernünftiges IPC hingekriegt und deswegen so einen Mist gemacht haben) Das Programm schreibt also tatsächlich nach a[6]. Das führt dann so alle 20 mal zum GPF (Was meinst du, warum die Dinger so oft vorkommen?).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
27.09.2002, 15:15 Uhr
virtual
Sexiest Bit alive
(Operator)



C++:
#include <iostream.h>
#include <string.h>
int iKette;
char cAlkan[10];

int main()
{
cout<<"Bitte geben sie die l\x84ngste Kette an ";
cin>>iKette;

switch(iKette)
{
case 1:
{
strcpy(cAlkan, "Methan");
break;
}
[...]
default:
{
cout<<"Es sind net wirklich soviele, oder?";
break;
}
}
cout<<cAlkan;
getch();
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 27.09.2002 um 15:15 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: