Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/26: Рейтинг темы: голосов - 26, средняя оценка - 4.92
41 / 41 / 10
Регистрация: 22.05.2009
Сообщений: 492

С++ из char[] в *char

13.11.2012, 18:34. Показов 5473. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Совсем забыл с++ ...

C++
1
2
3
char *token = "Слово";
 
char *one_char; //Нужно сделать массив состоящий из первого символа token, как это сделать?)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2012, 18:34
Ответы с готовыми решениями:

Char unsigned char signed char длинна Кааак
Здравствуйте. char l = {0,0}; l = 0xff; Почему, меня, компилятор не посылает куда подальше. Нет он конечно...

Ошибка: "char *concat(char *,.)": невозможно преобразовать аргумент 1 из "const char [4]" в "char *"
делал задание, но на строке 36 строке пишет, что "char *concat(char *,...)": невозможно преобразовать аргумент 1 из "const char "...

(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&
astxx::manager::connection::connection(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned short); ...

28
58 / 58 / 13
Регистрация: 12.11.2011
Сообщений: 109
13.11.2012, 18:49
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <string.h>
 
int main()
{
    char *token = "Word";
    char *one_char = new char(strlen(token));
    memcpy(one_char, "\0", strlen(one_char)); // Чищу строку
 
    memcpy(one_char, token, 1); // Копирую первый символ строки token
    printf("%s\n", one_char);
 
    return 0;
}
1
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
13.11.2012, 19:02
C++
1
char *one_char = new char(strlen(token));
Круглые скобки - получается new char, который инициализируется значением strlen(token). В отличие от new char[...].
C++
1
memcpy(one_char, "\0", strlen(one_char));
1) one_char указывает на неизвестно какую строку, чему же будет равен strlen???
2) "\0" - это строка из двух char'ов, а что после неё - неизвестно. Как же можно из неё копировать strlen(onechar) (== ???) символов?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
13.11.2012, 19:04
В дополнение - забыли
C++
1
delete[]
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
13.11.2012, 19:08
C++
1
2
3
4
5
6
7
8
#include <stdio.h>
int main()
{
  char *token = "Word";
  char one_char [1];
  one_char [0]= token[0]; 
  return 0;
}
и всё на этом.
0
41 / 41 / 10
Регистрация: 22.05.2009
Сообщений: 492
13.11.2012, 19:15  [ТС]
kravam, Не все так просто...
one_char = "WММММММММ„xA"//вот что попадает в one_char в твоем примере

extenup, Твой способ нормально отработал, спасибо
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
13.11.2012, 19:17
Цитата Сообщение от From_Tula Посмотреть сообщение
extenup, Твой способ нормально отработал
Если бы всегда людям так сильно везло...
0
58 / 58 / 13
Регистрация: 12.11.2011
Сообщений: 109
13.11.2012, 19:18
Цитата Сообщение от Somebody Посмотреть сообщение
1) one_char указывает на неизвестно какую строку, чему же будет равен strlen???
C++
1
char *one_char = new char(strlen(token));
Не известно что находится в строке one_char, но отлично известна его длина..
0
41 / 41 / 10
Регистрация: 22.05.2009
Сообщений: 492
13.11.2012, 19:21  [ТС]
Ладно, в итоге есть такой способ с которым согласятся все?))

В php блин никаких запаров...=)
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
13.11.2012, 19:21
Цитата Сообщение от extenup Посмотреть сообщение
C++
1
char *one_char = new char(strlen(token));
Не известно что находится в строке one_char, но отлично известна его длина..
Может нужны квадратные скобки?
0
58 / 58 / 13
Регистрация: 12.11.2011
Сообщений: 109
13.11.2012, 19:25
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Может нужны квадратные скобки?
Можно и квадратные и круглые, без разницы.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
13.11.2012, 19:30
Цитата Сообщение от extenup Посмотреть сообщение
Можно и квадратные и круглые, без разницы.
разница такая, что с круглыми будет выделена память для одного char'а и туда будет записан символ с кодом равным длине строки token
Цитата Сообщение от extenup Посмотреть сообщение
Не известно что находится в строке one_char, но отлично известна его длина..
зато здесь его длина не известна:
C++
1
memcpy(one_char, "\0", strlen(one_char))
"\0" - предаствляется как '\0''\0'
Цитата Сообщение от From_Tula Посмотреть сообщение
one_char = "WММММММММ„xA"//вот что попадает в one_char в твоем примере
Потому что вы пытаетесь его вывести как строку, а в ней нет символа \0
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
13.11.2012, 19:30
Цитата Сообщение от extenup Посмотреть сообщение
Можно и квадратные и круглые, без разницы.
Нет, не без разницы. Говорю же:
new char[10] - это 10 char'ов, а new char(10) - это 1 char, который равен 10.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
13.11.2012, 19:37
Цитата Сообщение от From_Tula Посмотреть сообщение
Нужно сделать массив состоящий из первого символа token, как это сделать?)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main()
{
    char *token="Word";
    char *one_char=new char;
    *one_char=token[0];
    cout<<*one_char<<endl;
    cin.get();
    delete one_char;
    return 0;
}
Это? Или я не совсем понял что необходимо

Добавлено через 1 минуту
Цитата Сообщение от From_Tula Посмотреть сообщение
extenup, Твой способ нормально отработал, спасибо
Вам просто повезло!
0
58 / 58 / 13
Регистрация: 12.11.2011
Сообщений: 109
13.11.2012, 19:37
Цитата Сообщение от Somebody Посмотреть сообщение
Нет, не без разницы. Говорю же:
new char[10] - это 10 char'ов, а new char(10) - это 1 char, который равен 10.
Да, точно.)
0
41 / 41 / 10
Регистрация: 22.05.2009
Сообщений: 492
13.11.2012, 19:38  [ТС]
Как убогий вариант=)

C++
1
2
3
4
5
    char one_char[2];
    one_char[1]='\0';
 
char *token = "Слово";
one_char[0]=token[0];
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
13.11.2012, 19:43
Цитата Сообщение от From_Tula Посмотреть сообщение
kravam, Не все так просто...
one_char = "WММММММММ„xA"//вот что попадает в one_char в твоем примере
Ну а чё тебе не нравится? Ты просил сделать единичный массив, его сделал, просил запихать туда первый символ token, я запихал. А чё уж там за W следует мне безразлично, да и тобой по следующим символам ничего заявлено не было.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
13.11.2012, 19:44
Цитата Сообщение от kravam Посмотреть сообщение
А чё уж там за W следует мне безразлично
да все там правильно. Просто выводят, наверное так:
C++
1
cout<<one_char;
0
41 / 41 / 10
Регистрация: 22.05.2009
Сообщений: 492
13.11.2012, 19:52  [ТС]
Цитата Сообщение от kravam Посмотреть сообщение
Ну а чё тебе не нравится? Ты просил сделать единичный массив, его сделал, просил запихать туда первый символ token, я запихал. А чё уж там за W следует мне безразлично, да и тобой по следующим символам ничего заявлено не было.
Единичный массив, наверное это тот массив длина которого равна 1.
Или я не прав?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
13.11.2012, 19:53
Цитата Сообщение от From_Tula Посмотреть сообщение
Единичный массив, наверное это тот массив длина которого равна 1.
Или я не прав?
Правы. А Вам сколько нужно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2012, 19:53
Помогаю со студенческими работами здесь

Как присвоить к новой char переменной другую char переменную с указателем
Как присвоить к новой char переменной другую char переменную с указателем #include&lt;iostream&gt; int main() { using namespace...

Ошибка в cannot convert char * to char вроде поправил теперь выводит ересь(
Всем доброго дня! У меня такая проблемка.... написал программу, но сначала она ругалась на Cannot convert char* to char теперь вроде...

Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR
Проблемные вопросы отражены на скрине Программа написана к заданию: 1. Разработать прикладной протокол для передачи файлов с помощью...

Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *'
error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' void crpost(const statep &amp;struc1) { ...

Однонаправленные списки. [Error] incompatible types in assignment of 'char*' to 'char [128]'
Доброго времени суток. Начал учить однонаправленные списки, но столкнулся с проблемой: incompatible types in assignment of 'char*' to...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru