Avatar billede phrame Nybegynder
14. februar 2003 - 11:33 Der er 8 kommentarer og
1 løsning

Længden på en string så jeg kan string to char

Heisan...

jeg har brug for at skrive en funktion som kan travasere en string for føre de enkelte chars over i et char array. Men jeg har brug for at finde længden på min string, hvordan gør jeg det

kode:
char *nystreng;
string strengen = "Test";

for( int i=0; i< ????? ; i++ )
    nystreng[ i ] = strengen [ i ];

cout <<endl <<"Strengen: " <<strengen <<endl <<"Nystreng: " <<nystreng <<endl;

Eller gør jeg det helt forkert?
Avatar billede soreno Praktikant
14. februar 2003 - 11:36 #1
Er det en stl string ?
i<strengen.length()
Avatar billede phrame Nybegynder
14. februar 2003 - 11:38 #2
øeh... stl?.... jeg laver det i linux på en red hat 8.0 maskine. De include jeg har med er #include <string>, #include <iostream>. Jeg bruger g++ til at kompiler med... Hvis det hjælper noget...
Avatar billede soreno Praktikant
14. februar 2003 - 11:40 #3
står der ikke:
uses namespace std;

nogle steder ?
Avatar billede phrame Nybegynder
14. februar 2003 - 11:41 #4
det gør det nu... kan jeg så bruge length()?
Avatar billede soreno Praktikant
14. februar 2003 - 11:44 #5
Du kan f.eks. gøre sådan:

#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv)
{
    string str = "Hello World";   
    char *temp = new char[str.length()];
    for(int i=0;i<str.length();i++)
    {
        temp[i] = str[i];
    }
    cout << "stl string: " << str << endl;
    cout << "char array: " << temp << endl;

    return 0;
}
Avatar billede soreno Praktikant
14. februar 2003 - 11:48 #6
Når du er færdig med at bruge char arrayet bør du "kræve hukommelsen tilbage":
delete [] temp;
Avatar billede phrame Nybegynder
14. februar 2003 - 11:49 #7
jeg nåede at løse det inden jeg kigge på din løsning... men i stedet for at bruge char *temp = new char[str.length()] lavede jeg bare en char temp[ str.length() ] .... Men gør det noget forskel?
Avatar billede soreno Praktikant
14. februar 2003 - 11:53 #8
Min løsning allokerer hukommelse dynamisk - din gør det statisk.
Med min løsning skal du selv deallokere hukommelsen når du er færdig med at bruge den (med delete..).

Jeg ville benytte din løsning..
:-)
Avatar billede phrame Nybegynder
14. februar 2003 - 12:04 #9
det var stadig dig som løste problemet....
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