Avatar billede chrisrj Forsker
18. november 2001 - 14:42 Der er 9 kommentarer og
1 løsning

convert char -> string

Hvordan gør man det ?
Avatar billede nagual Nybegynder
18. november 2001 - 14:57 #1
Jeg er ikke helt sikker på hvad du mener, men hvis du med string mener (char *navn); så kan du blot bruge kommandoen: strcpy(navn, char_navn), hvor navn er af typen: char* navn, og char er af typen: char char_navn.
Du må gerne prøve at uddybe det...
Håber det kan hjælpe dig...
Avatar billede nagual Nybegynder
18. november 2001 - 15:05 #2
Undskyld, men det jeg skrev før var vist lidt ukorrekt. Du kan gøre det på følgende måde:

char *test1;
char *test2;
test2[0] = \'T\';
test2[1] = 0;
strcpy(test1, test2);

Du konverterer altså den char du vil lave om til en string (i dette eksempel \'T\')...
Undskyld misforståelsen, og bare skriv hvis der er noget du ikke forstår...
Avatar billede chrisrj Forsker
18. november 2001 - 15:07 #3
Jeg har dette array : char tokName[TOKENSIZE]; i en string funktion som returnere dette : return *tokName;

Jeg ved om det kan lade sig gøre på denne måde eller ej.

Men jeg prøver lige dit foreslag....
Avatar billede chrisrj Forsker
18. november 2001 - 15:08 #4
Her er funktionen :

string symbolTable::test()
{
    int i = 29;
    char tokName[TOKENSIZE];
    for (int i = 0; i < count ; i++)
    {
        tok[i].getToken(tokName);
        cout << i <<\'\\t\' << tokName << endl;
    }
    return *tokName;
}

Hvad vil du mene der skal gøres for at få den til virke ?
Avatar billede chrisrj Forsker
18. november 2001 - 15:10 #5
Lad dig ikke forvirre linien \'int i = 29;\' ... det er bare en test.
Avatar billede chrisrj Forsker
18. november 2001 - 15:32 #6
Er nødt til gå.. er tilbage om ca. 3 timer...

Men lad det endelig ikke afholde dig/jer fra at komme med forslag! :-)
Avatar billede nagual Nybegynder
18. november 2001 - 15:44 #7
Jeg tror jeg er ved at være pejlet ind på hvad det er du har brug for. Jeg har skrevet et lille stykke kode som du måske kan bruge. (husk at bruge #include <string> i både headerfilen og den fil hvor selve funktionen ligger :)

std::string Dialog1::test()
{
  const TOKENSIZE = 100;
  std::string RetStr;
  int i;
  char tokName[TOKENSIZE];
  int count = 29;
  for (i = 0; i < count ; i++)
  {
    tok[i].getToken(tokName);
    cout << i <<\'\\t\' << tokName << endl;
  }

  RetStr.copy(tokName, 29, 0);
  return RetStr;
}
Avatar billede mickni33 Nybegynder
19. november 2001 - 08:34 #8
Jeg tror du bare skal lave en string streng=tokName;
mener ikke man behøver at konverte, det mere hvis du vil den anden vej
fra en string til char*

string symbolTable::test()
{
    string temp;
    int i = 29;
    char tokName[TOKENSIZE];
    for (int i = 0; i < count ; i++)
    {
        tok[i].getToken(tokName);
        cout << i <<\'\\t\' << tokName << endl;
    }
  temp=tokName;
    return temp;
}

Avatar billede chrisrj Forsker
19. november 2001 - 13:02 #9
Skide godt mickni33!!! Det virker perfekt!!!!

Tak!!!!
Avatar billede mickni33 Nybegynder
19. november 2001 - 14:08 #10
:-)
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