[C++] Przypisywanie stringow roznych wartosci


(Krzkaczor) #1

Hej!

Mam taki kod:

if (nFind == 1) strReturn2 = i5," ",i4;

Ale dlaczego on mi nie działa? Dodam ze i5/i4 to liczniki pętli for a strReturn2 jest zadeklarowane jako string :slight_smile: i ten kod w if się na pewno wykonuje.

Proszę o pomoc


(Fiołek) #2

Ja bym najpierw radził zaznajomić się z działaniem operatora , bo nie tak się go używa(można i tak, ale nie będzie działał tak jak chcesz).

Czym jest "strReturn2"? char*? std::string? Ani char, ani string nie ma wbudowanej konwersji z int więc ten kod nie może działać.


(Sawyer47) #3

Hmm takie pytanie świadczy o niepełnej znajomości C++. Co wg Ciebie miałby robić ten kod?

strReturn2 = i5," ",i4;

Tzn. jest to kod poprawny składniowo, ale raczej nie chciałeś do strReturn2 przypisać i4.

// ok ten kod się skompiluje, a łańcuch będzie zawierał literę której kod ASCII przypisano do std::string.


(system) #4
#include 

#include 


template inline std::string Str(const T& t)

  {

   //std::stringstream ss;

   //ss<
   //return ss.str();

   // lub

   return ((std::stringstream&)(std::stringstream()<
  }


int main()

  {

   std::string strReturn2;

   int i5=55,i4=44;


   strReturn2=Str(i5)+" "+Str(i4);

   cout<
   cin.get();

   return 0;

  }

(Sawyer47) #5

Ok dobra niedokładnie się wyraziłem, niestety C++ ma za dużo niejawnych konwersji. Jednak chodziło mi o to, że nie ma konstruktora std::string, który z liczby tworzyłby string z jej reprezentacją.


(system) #6

Napisałeś że się nie skompiluje :stuck_out_tongue:

A jednak się kompiluje i nawet działa, może nie zupełnie zgodnie z oczekiwaniami autora tematu.


(Krzkaczor) #7

No macie racje ze sie na tym cudzie nie znam bo siedze prawie zawsze w PHP i tam takie cuda dzialaja :stuck_out_tongue: dobra thx za odpowiedz za chwile sprawde czy śmiga :slight_smile:


(system) #8

To nie jest klasa lecz wzorzec funkcji :smiley:

to jest tak jakby napisał serie funkcji:

std::string Str(TypKonwertowany t)

  {

   std::stringstream ss;

   ss<
   return ss.str();

  }

gdzie TypKonwertowany, zamieniasz na int, long, unsigned, unsigned long, float, double, std:vector<> itp, czyli na każdy typ który przekażesz do funkcji Str()


(Krzkaczor) #9

Ehe dzięki może sie połapie xD idę kodzic jak coś to się dopytam xD

Ok juz wszystko śmiga :slight_smile: Wielkie dzięki!