Re[3]: copy referenced string
От: Dmitry.INFO Эстония http://dmitry.info/
Дата: 07.01.06 10:45
Оценка:
Здравствуйте, Dmitry.INFO, Вы писали:

DI>Здравствуйте, korzhik, Вы писали:


K>>спасая от смерти, привожу код:

K>>
K>>#include <string>
K>>using std::string;

K>>void some_function(string & a)
K>>{
K>>  string b = a;
K>>}
K>>

DI>Да уж, если бы всё было бы так просто. Когда ты делаешь присваивание к b, то к b присваивается ссылка (const *), т.е. получается, что мы теперь управляем a, только через b. Короче говоря получился, впринципе, бесполезный объект. Мне же нужно... вот пример кода:
DI>
DI>int main(int argc, char *argv[])
DI>{
DI>    string username; // input
DI>        string userkey; // output
    
DI>    strcpy((char*)username.c_str(), argv[1]);

DI>        GenerateKey(username, userkey);
DI>}

DI>int GenerateKey(string & userkey, string & cckey) // also can be used with &
DI>{
DI>        string name; // input data
DI>        name = userkey;
DI>        printf("%i", name.length()); // обычно получается нуль
 
DI>        /** или к примеру ***/

DI>        transform(name.begin(), name.end(), name.begin(), toupper);
DI>        printf("%s", userkey.c_str()); // к примеру есть ввожу в коммандной строке: prog.exe "Some String"
DI>        printf("%s", name.c_str()); // то в userkey должно быть "Some String", а получается "SOME STRING" как в name
DI>                                     // так и в userkey. Получается, что работаю со ссылкой.
DI>} 
DI>

DI>Думаю теперь понятно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.