2007-07-20, 16:58
  #1
Medlem
xobs avatar
mja, jag frsker anvnda mig utav "string.join" men fr det hr meddelandet:

In function `int main()':
expected primary-expression before '.' token

koden ser ut shr:
Kod:
#include <iostream>
using namespace std;

int main(){
    string array[] = { "hej","hur","mar","du?" };
   
   
    string.join(array," "); // <-----

     cin.get();
    return 0;
}

vad r fel?
Citera
2007-07-20, 17:14
  #2
Medlem
Var fr du join ifrn?
String r en klass och inte en instans, allts kan du inte anvnda '.' p string. Vill du anvnda en statisk funktion s r det :: du ska anvnda, men finns liksom ingen join funktion i std::string.
Citera
2007-07-20, 18:00
  #3
Medlem
.NET framework har dremot String.Join, men det ska inte blandas ihop med C++'s string. Den ser inte ut s heller.
Citera
2007-07-20, 18:27
  #4
Medlem
xobs avatar
Citat:
Ursprungligen postat av ltvix
.NET framework har dremot String.Join, men det ska inte blandas ihop med C++'s string. Den ser inte ut s heller.
mmkay.. hur joinar man en array i c++ d?

t.ex.
string array[] = { "a","b","c" };

ska bli:
string text = "abc";
Citera
2007-07-20, 19:18
  #5
Medlem
Nu var det ett tag sedan jag lekte med C++, men ett stt att gra det p med datastrukturen vector r:
Kod:
#include <iostream>
#include <string>
#include <vector>

int main()
{
    std::vector<std::string> v;
    std::string res;
    int i, size;

    v.push_back("hej");
    v.push_back("san");

    size = v.size();
    for(i=0; i<size ; i++) {
        res.append(v[i]);
    }
    
    std::cout << "Result: " << res << std::endl;

    return 0;
}

Vill du anvnda en C array kan du gra ngot liknande detta:
Kod:
#include <iostream>
#include <string>

int main()
{
    char *array[] = {"hej", "san", "!", NULL}, **cp;
    std::string res;

    for(cp = array; *cp != NULL ; cp++) {
        res.append(*cp);
    }

    std::cout << "Result: " << res << std::endl;

    return 0;
}

Kort sagt, utg frn strings appendmetod.
Citera
2007-07-20, 19:34
  #6
Medlem
Sigmaswes avatar
Kod:
#include <iostream>
#include <string>

using namespace std;
int main ( int argc, char * argv[] )
{
       char enArray[3] = {'a', 'b', 'c'}; //Byt ut 3 mot antalet element du vill ha
       int lengthOfArray = sizeof(enArray);
       string slutString;

       for ( int i = 0; i < lengthOfArray; i++ )
       {
              slutString.push_back( enArray[i] );
       }
       cout << slutString; //Valfritt att visa stringen
       cin.get();
}

 

Skulle jag gra tror jag
Citera
2007-07-20, 19:43
  #7
Medlem
xobs avatar
tack tack till er bda! nu funkar allt som det ska!
Citera
2007-07-21, 20:06
  #8
Medlem
nudieses avatar
En till variant.

Kod:
#include <string>
#include <algorithm>

int main() {

	using namespace std;

	char arr[3] = {'a', 'b', 'c'};
	string s;
	copy(arr, arr + (sizeof(arr)/sizeof(char)), inserter(s, s.begin()));
	
}
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in