Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
hackgamn
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 7
#1

Как присвоить типу char значение string? - C++

14.11.2013, 11:08. Просмотров 1558. Ответов 10
Метки нет (Все метки)

При выполнении строки

w.at(1)=l;
выдает error2440 cannot convert from std::string to char
как перевести l в char или w.at в string?(string w, string l).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 11:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как присвоить типу char значение string? (C++):

есть массив char. есть строка string. как присвоить значению string-a значение char-a? - C++
есть массив char. есть строка string. как присвоить значению string-a значение char-a?

как присвоить переменной char значение слова ? - C++
Здравствуйте ребята !! Я новичок в этом сайте , и даже новый в c++ . сегодня начал c++ . я знаю PHP , и решил учить c++ . и мне очень...

Как переменной Char присвоить значение целого текста? - C++
Пример текста: "Верьте аль не верьте , а жил на белом свете Федот-Стрелец Удалой молодец......"

Присвоить string'y массив char - C++
char name1 = "helloPeople"; std::string name2; name2 = name1; // как можно это реализовать? Причем с массива нужно начать считывать...

Как переменной Char присвоить значение целого текста полученого из файла? - C++
файл input.txt текст "ой мама не горюй" использовать ifstream

Как присвоить переменной типа string значение из файла - C++
Название файла неизвестно, задается пользователем в командой строке при вызове программы. Т.е. Допусти, что мы присвоили переменной ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
oxotnik
1590 / 1067 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
14.11.2013, 11:14 #2
C
1
strcpy(char*, std::string::c_str());
перед этим необходимо выделить память char[std::string::size() + 1]
простому char нельзя присвоить
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.11.2013, 12:26 #3
Цитата Сообщение от hackgamn Посмотреть сообщение
w.at(1)=l;
да так сделай w.at(1)='l'; , то я так думаю символ , а не переменная?

Добавлено через 1 минуту
Цитата Сообщение от hackgamn Посмотреть сообщение
выдает error2440 cannot convert from std::string to char
А ладно по ошибке видно что l это переменная вроде как string, просто добавть l[0] и все.
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 12:31 #4
C++
string str = "abc";
const sz = str.size();
 
char s[sz+1] = str.c_str();
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
14.11.2013, 12:32 #5
at это обращение к элементу массива, а значит l должен быть символом. Если это переменная класса string так и обратитесь к ее символу посредством того же метода:
C++
1
w.at(1) = l.at(/*индекс элемента*/);
Зачем конертировать и изобретать велосипед?
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
14.11.2013, 12:47 #6
Цитата Сообщение от programina Посмотреть сообщение
string str = "abc"; const sz = str.size(); char s[sz+1] = str.c_str();
Что за жесть Вы пишете?!

Цитата Сообщение от hackgamn Посмотреть сообщение
w.at(1)=l;
Если w - это вектор символов, а l - строка, то неплохо бы узнать, чего Вы хотите добиться.
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
14.11.2013, 12:49 #7
Цитата Сообщение от Ilot Посмотреть сообщение
at это обращение к элементу массива
Вектора.
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
14.11.2013, 12:52 #8
Цитата Сообщение от Tulosba Посмотреть сообщение
Если w - это вектор символов...
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Вектора.
Пожалуй, не обязательно вектор. Это может быть любой контейнер имеющий рандомный итератор как то деки, строки.
SatanaXIII, под массивом подразумевается контейнер с произвольным доступом к элементам.
1
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 13:00 #9
Цитата Сообщение от Tulosba Посмотреть сообщение
Что за жесть Вы пишете?! :facepalm
C++
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
 
int main()
{
  string str = "abc" ;
 
  const char *s = str. c_str () ;
 
  char s2[str.size()+1];
 
  strcpy(s2, s);
 
  cout << s2 << endl;
}
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
14.11.2013, 13:04 #10
Цитата Сообщение от programina Посмотреть сообщение
char s2[str.size()+1];
прокатит только при поддержке VLA (т.е. не стандарт)
Зачем переменная s вообще не понятно.
К тому же предлагать копирование строк, не разобравшись чего хочет ТС, я бы не стал.
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 13:10 #11
Цитата Сообщение от Tulosba Посмотреть сообщение
прокатит только при поддержке VLA
GCC
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2013, 13:10
Привет! Вот еще темы с ответами:

Как присвоить переменной типа String значение argv[0]? - C++
Как присвоить переменной типа String значение argv? Заранее спасибо =)

Присвоить новое значение для char - C++
Доброго времени суток! Объявилась не большая проблема: char Folder1 = &quot;Objects\\Forest\\&quot;; if (map==0) Folder1 =...

Не получается присвоить значение двумерному массиву char - C++
объявляю двумерный массив (массив массивов в char для хранения имен файлов) в cpp файле char m_fname ; я хочу инициализировать...

Не получается присвоить значение элементу массива указателей типа char *a[3] - C++
В попытках разобраться с массивами, указателями, массивами указателей и т.п. написал вот такой код: int main() { char *a = {...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.11.2013, 13:10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru