Есть функция, some_function(string & a); в ней надо скопировать в "string b" "a" которая передаёться в аргементе функции.
Как сделать — ума не приложу. И пытался обычным cpystr, но пишет что не может преобразовать char* в const char*. Знающий народ — помогите, спосите от смерти.
Здравствуйте, Dmitry.INFO, Вы писали:
DI>Есть функция, some_function(string & a); в ней надо скопировать в "string b" "a" которая передаёться в аргементе функции. DI>Как сделать — ума не приложу. И пытался обычным cpystr, но пишет что не может преобразовать char* в const char*. Знающий народ — помогите, спосите от смерти.
спасая от смерти, привожу код:
#include <string>
using std::string;
void some_function(string & a)
{
string b = a;
}
Здравствуйте, korzhik, Вы писали:
K>спасая от смерти, привожу код: K>
K>#include <string>
K>using std::string;
K>void some_function(string & a)
K>{
K> string b = a;
K>}
K>
Да уж, если бы всё было бы так просто. Когда ты делаешь присваивание к b, то к b присваивается ссылка (const *), т.е. получается, что мы теперь управляем a, только через b. Короче говоря получился, впринципе, бесполезный объект. Мне же нужно... вот пример кода:
int main(int argc, char *argv[])
{
string username; // input
string userkey; // output
strcpy((char*)username.c_str(), argv[1]);
GenerateKey(username, userkey);
}
int GenerateKey(string & userkey, string & cckey) // also can be used with &
{
string name; // input data
name = userkey;
printf("%i", name.length()); // обычно получается нуль
/** или к примеру ***/
transform(name.begin(), name.end(), name.begin(), toupper);
printf("%i", userkey.length()); // к примеру есть ввожу в коммандной строке: prog.exe "Some String"
printf("%i", name.length()); // то в userkey должно быть "Some String", а получается "SOME STRING" как в name
// так и в userkey. Получается, что работаю со ссылкой.
}
Здравствуйте, 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>
Здравствуйте, Dmitry.INFO, Вы писали:
DI>Так а как скопировать то? Надо char в string перевести.
username = argv[1];
Re: copy referenced string
От:
Аноним
Дата:
07.01.06 11:01
Оценка:
Здравствуйте, Dmitry.INFO, Вы писали:
DI>Есть функция, some_function(string & a); в ней надо скопировать в "string b" "a" которая передаёться в аргементе функции. DI>Как сделать — ума не приложу. И пытался обычным cpystr, но пишет что не может преобразовать char* в const char*. Знающий народ — помогите, спосите от смерти.
Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, Dmitry.INFO, Вы писали:
DI>>Мне же нужно... вот пример кода: K>
DI>>int main(int argc, char *argv[])
DI>>{
DI>> string username; // input
DI>> string userkey; // output
DI>> //strcpy((char*)username.c_str(), argv[1]); // так нельзя делать
K> username = argv[1];
DI>> GenerateKey(username, userkey);
DI>>}
K>
Спасибо. Даже и не думал, что можно char к string'у присваивать. Надо будет поподробнее ознакомиться с STL.
Спасибо вам за исправление моей ошибки!
Re[5]: copy referenced string
От:
Аноним
Дата:
07.01.06 11:19
Оценка:
Здравствуйте, Dmitry.INFO, Вы писали:
DI>Здравствуйте, korzhik, Вы писали:
DI>Спасибо. Даже и не думал, что можно char к string'у присваивать. Надо будет поподробнее ознакомиться с STL. DI>Спасибо вам за исправление моей ошибки!