Avatar billede vuffe Nybegynder
10. november 2003 - 15:45 Der er 19 kommentarer og
1 løsning

char array

hej, jeg har problemer med et array, for jeg vil gerne have at der kan stå tekst i mit array istedet for bogstaver, men hvad skal jeg ændre i for at få lov til at gøre det? her er koden:

#include <iostream.h>
int main()
{
    int *gPtr;    // declare a pointer to an int
    const int SIZE = 5;
    int i, grade[SIZE] = {98,87,92,79,85};

    gPtr = &grade[0];  // store the starting array adress
    do
    {
        cin >> i;
        cout << "Day" << i << " is " << *(gPtr+i) << endl;       
    break;
    }
    while (1)
        ;
    return 0;
    }

altså jeg mener i mit array hvor der står 98,87,92,79,85 kunne jeg godt tænke mig at skrive noget tekst istedet for tallene, kan man ikke det??

vuffe
Avatar billede arne_v Ekspert
10. november 2003 - 16:00 #1
char s[] = "abcd";

eller ?
Avatar billede vuffe Nybegynder
10. november 2003 - 16:47 #2
f.eks.:
char i, grade[SIZE] = {"sunrise = 98º","sunset = 87º}";

men så siger den at der er overflow of for mange initialisatorer
Avatar billede vuffe Nybegynder
10. november 2003 - 16:48 #3
error C2078: too many initializers
error C2117: 'sunrise = 98' : array bounds overflow
Avatar billede arne_v Ekspert
10. november 2003 - 16:48 #4
Det er:

char grade[2][16] = {"sunrise = 98º","sunset = 87º"};
Avatar billede arne_v Ekspert
10. november 2003 - 16:49 #5
det første index er antal strenge

det andet index er max. antal tegn i hver streng
Avatar billede arne_v Ekspert
10. november 2003 - 16:50 #6
Hvis du bruger nyere C++ compiler så kan du overveje brug af
STL string i.s.f. !
Avatar billede arne_v Ekspert
10. november 2003 - 16:50 #7
string grade[2] = {"sunrise = 98º","sunset = 87º"};

[utestet]
Avatar billede vuffe Nybegynder
10. november 2003 - 17:00 #8
ok! det ser ud til at virke nogenlunde, jeg vender lige tilbage (skal lige lege lidt med det endnu) mange tak indtil videre
Avatar billede vuffe Nybegynder
10. november 2003 - 17:16 #9
jeg tror det virker, men den jeg får stadig en fejl:
cannot convert from 'char (*)[13]' to 'int *' ved linjen:

gPtr = &grade[0];

jeg kan ikke helt gennemskue hvad jeg skal ændre på...har prøvet lidt af hvert. har du nogle forslag?
Avatar billede arne_v Ekspert
10. november 2003 - 17:51 #10
gPtr = &grade[0][0];
Avatar billede vuffe Nybegynder
10. november 2003 - 17:56 #11
hmm stadig samme fejl
Avatar billede arne_v Ekspert
10. november 2003 - 17:59 #12
gPtr = (int *)&grade[0][0];
Avatar billede arne_v Ekspert
10. november 2003 - 17:59 #13
Men jeg er meget skeptisk overfor om det er det du vil.
Avatar billede vuffe Nybegynder
10. november 2003 - 18:11 #14
det jeg vil er at kunne trække " sunrise = 98º og sunset = 87º " ud af mit array alt efter om jeg skriver 1 eller 2. Men jeg ved ikke om det kan lade sig gøre, så jeg tror bare at jeg laver programmet på en anden måde.
Avatar billede arne_v Ekspert
10. november 2003 - 18:17 #15
Det er da nemt.

int ix;
cin >> ix;
cout << grade[ix-1] << endl;
Avatar billede segmose Nybegynder
10. november 2003 - 18:20 #16
Hvad med sådan her???

char *gPtr;
int i;

cin << i;

gPtr = grade[i-1].c_str();

[utested, usikret (i kan have forkert værdi)]
Avatar billede vuffe Nybegynder
10. november 2003 - 18:51 #17
tak, jeg fik arnes forslag til at virke, så jeg har ikke kigget på dit segmose. Men mange tak skal i have begge to. smid lige et svar så du ka få point arne.
Avatar billede vuffe Nybegynder
10. november 2003 - 19:05 #18
what? accepterede jeg svaret fra segmose?? Det var sq virkelig et uheld, jeg kom til at trykke på den forkerte knap, jeg kan lige oprette et nyt spm. så du kan få point.
Avatar billede segmose Nybegynder
11. november 2003 - 08:46 #19
Vil du have dine point tilbage?
Avatar billede vuffe Nybegynder
11. november 2003 - 10:11 #20
nej, det er ligmeget, har alligevel så mange efterhånden :D
arne du kan smide et svar herind: http://www.eksperten.dk/spm/425945
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester