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

С++ из char[] в *char

13.11.2012, 18:34. Показов 5408. Ответов 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
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
13.11.2012, 19:04
В дополнение - забыли
C++
1
delete[]
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
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,531
Записей в блоге: 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
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 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
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 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,698
13.11.2012, 19:43
Цитата Сообщение от From_Tula Посмотреть сообщение
kravam, Не все так просто...
one_char = "WММММММММ„xA"//вот что попадает в one_char в твоем примере
Ну а чё тебе не нравится? Ты просил сделать единичный массив, его сделал, просил запихать туда первый символ token, я запихал. А чё уж там за W следует мне безразлично, да и тобой по следующим символам ничего заявлено не было.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 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
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru