Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / string & char* / 19 сообщений из 19, страница 1 из 1
12.02.2007, 11:32
    #34323079
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
Требется перевести переменную типа string в char* и обратно.
string в char* - это ещё понятно - c_str() .
...
Рейтинг: 0 / 0
12.02.2007, 11:44
    #34323146
Paradoxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
oblomovТребется перевести переменную типа string в char* и обратно.
string в char* - это ещё понятно - c_str() .
Код: plaintext
1.
2.
3.
4.
string str;
char* pch = "test";
str = pch;
:)
...
Рейтинг: 0 / 0
12.02.2007, 11:47
    #34323161
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
Хотя и c_str() не катит:

char arr[20];
memset(arr,0,20);
string value = string ("0123");
strncat(arr,value.c_str(),4);
В результате в arr не то, что надо. Али я не так делаю?
...
Рейтинг: 0 / 0
12.02.2007, 11:50
    #34323184
Oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
Paradoxx oblomovТребется перевести переменную типа string в char* и обратно.
string в char* - это ещё понятно - c_str() .
Код: plaintext
1.
2.
3.
4.
string str;
char* pch = "test";
str = pch;
:)

А обратно?
...
Рейтинг: 0 / 0
12.02.2007, 12:21
    #34323343
Paradoxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
oblomovХотя и c_str() не катит:

char arr[20];
memset(arr,0,20);
string value = string ("0123");
strncat(arr,value.c_str(),4);
В результате в arr не то, что надо. Али я не так делаю?

Простите, а что вы ожидали получить в arr, потому что там будет "0123", что и ожидалось.
...
Рейтинг: 0 / 0
12.02.2007, 12:22
    #34323351
Paradoxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
А для string -> char*, вы уже сами сказали - c_str().
...
Рейтинг: 0 / 0
12.02.2007, 12:30
    #34323391
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
Paradoxx oblomovХотя и c_str() не катит:

char arr[20];
memset(arr,0,20);
string value = string ("0123");
strncat(arr,value.c_str(),4);
В результате в arr не то, что надо. Али я не так делаю?

Простите, а что вы ожидали получить в arr, потому что там будет "0123", что и ожидалось.
А у меня в arr \x01\0\0\0\0\0\0 и т.д.
...
Рейтинг: 0 / 0
12.02.2007, 12:38
    #34323438
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
oblomov Paradoxx oblomovХотя и c_str() не катит:

char arr[20];
memset(arr,0,20);
string value = string ("0123");
strncat(arr,value.c_str(),4);
В результате в arr не то, что надо. Али я не так делаю?

Простите, а что вы ожидали получить в arr, потому что там будет "0123", что и ожидалось.
А у меня в arr \x01\0\0\0\0\0\0 и т.д.

Извиняюсь, соврал! Работал с классами и раньше срока высвободил память
...
Рейтинг: 0 / 0
12.02.2007, 12:55
    #34323531
Paradoxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
Рад, что теперь все OK :)
...
Рейтинг: 0 / 0
12.02.2007, 13:20
    #34323637
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
Вот у меня другая проблемка: есть
char str = '11';
как преобразовать '11' в 0x11?
...
Рейтинг: 0 / 0
12.02.2007, 13:34
    #34323703
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
не надо преобразовывать. надо так и написать
char str=0x11;
...
Рейтинг: 0 / 0
12.02.2007, 14:26
    #34323910
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
У меня есть

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
char res[ 20 ];
memset(rees, 0 , 20 );
int dec1 =  1 ;  // в hex это 0x01
int dec2 =  35 ;// в hex это 0x23
int dec3 =  69 ;// в hex это 0x45

char b[ 2 ];
memset(b, 0 , 2 );
    
    itoa(dec1,b, 16 );
    strncat(res,b, 2 );
    b[ 0 ] = '\0';
    
    itoa(dec2,b, 16 );
    strncat(res,b, 2 );
    b[ 0 ] = '\0';

    itoa(dec3,b, 16 );
    strncat(res,b, 2 );
    b[ 0 ] = '\0';

Мне надо, чтобы в res было
Код: plaintext
 \x01\x23\x45\0\0\0
и т.д.
...
Рейтинг: 0 / 0
12.02.2007, 14:26
    #34323911
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
Как это сделать?
...
Рейтинг: 0 / 0
12.02.2007, 15:19
    #34324167
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
void MyFunc(const char* ch, char*  res){
        int ras =  48 ;
        int z;
        char b[ 2 ];
        memset(b, 0 , 2 );
        for (int i =  0 ; i < strlen(ch) ; i +=  2 ){
             z = ((ch[i] - ras) <<  4 ) | (ch[i+  1 ] - ras);
             itoa(z,b, 16 );
             strncat(res,b, 2 );
        }
}

На вход функции подается value = "123456", требуется, чтобы она возвращала res = \x12\x34\x56
...
Рейтинг: 0 / 0
12.02.2007, 15:36
    #34324249
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
oblomov
int dec1 = 1; // в hex это 0x01
int dec2 = 35;// в hex это 0x23
int dec3 = 69;// в hex это 0x45

Мне надо, чтобы в res было
Код: plaintext
 \x01\x23\x45\0\0\0
и т.д.
Код: plaintext
res[ 0 ]=dec1; res[ 1 ]=dec2; res[ 2 ]=dec3;
нормально?
...
Рейтинг: 0 / 0
12.02.2007, 15:47
    #34324301
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
maXmo oblomov
int dec1 = 1; // в hex это 0x01
int dec2 = 35;// в hex это 0x23
int dec3 = 69;// в hex это 0x45

Мне надо, чтобы в res было
Код: plaintext
 \x01\x23\x45\0\0\0
и т.д.
Код: plaintext
res[ 0 ]=dec1; res[ 1 ]=dec2; res[ 2 ]=dec3;
нормально?
Да я так пробовал
Вот другой пример
Код: plaintext
1.
2.
3.
4.
char b[ 2 ];
memset(b, 0 , 2 );
int dec =  35 ;
strcpy(b,"\0");
b[ 0 ] = dec;//b='#\0'
Знак # - это ,выходит, и есть 0x23?
...
Рейтинг: 0 / 0
12.02.2007, 16:01
    #34324372
==
==
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
oblomov
Знак # - это ,выходит, и есть 0x23?


Все точно, копейка в копейку

0x23==35.
...
Рейтинг: 0 / 0
12.02.2007, 16:23
    #34324472
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
При Debug показывает то \x35 , то # , вот я и запутался. Спасибо.
...
Рейтинг: 0 / 0
12.02.2007, 16:24
    #34324477
oblomov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string & char*
Т.е.
При Debug показывает то \x23 , то # , вот я и запутался. Спасибо.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / string & char* / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]