0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 7
1

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

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

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

w.at(1)=l;
выдает error2440 cannot convert from std::string to char
как перевести l в char или w.at в string?(string w, string l).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2013, 11:08
Ответы с готовыми решениями:

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

Как полю класса типа char* присвоить значение типа *char
Проблема в строчке 46 (не пинайте сильно за формат кода и за говнокод) #include "stdafx.h" ...

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

Как присвоить переменной типа char значение скобки
Привет. Столкнулся с проблемой что не могу присвоють переменной типа char значение скобки (правой...

10
1664 / 1133 / 80
Регистрация: 21.08.2008
Сообщений: 4,726
Записей в блоге: 1
14.11.2013, 11:14 2
C
1
strcpy(char*, std::string::c_str());
перед этим необходимо выделить память char[std::string::size() + 1]
простому char нельзя присвоить
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
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
2062 / 618 / 41
Регистрация: 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
Эксперт по математике/физикеЭксперт С++
2004 / 1335 / 379
Регистрация: 16.05.2013
Сообщений: 3,454
Записей в блоге: 6
14.11.2013, 12:32 5
at это обращение к элементу массива, а значит l должен быть символом. Если это переменная класса string так и обратитесь к ее символу посредством того же метода:
C++
1
w.at(1) = l.at(/*индекс элемента*/);
Зачем конертировать и изобретать велосипед?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
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
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
14.11.2013, 12:49 7
Цитата Сообщение от Ilot Посмотреть сообщение
at это обращение к элементу массива
Вектора.
0
Эксперт по математике/физикеЭксперт С++
2004 / 1335 / 379
Регистрация: 16.05.2013
Сообщений: 3,454
Записей в блоге: 6
14.11.2013, 12:52 8
Цитата Сообщение от Tulosba Посмотреть сообщение
Если w - это вектор символов...
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Вектора.
Пожалуй, не обязательно вектор. Это может быть любой контейнер имеющий рандомный итератор как то деки, строки.
SatanaXIII, под массивом подразумевается контейнер с произвольным доступом к элементам.
1
2062 / 618 / 41
Регистрация: 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
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
14.11.2013, 13:04 10
Цитата Сообщение от programina Посмотреть сообщение
char s2[str.size()+1];
прокатит только при поддержке VLA (т.е. не стандарт)
Зачем переменная s вообще не понятно.
К тому же предлагать копирование строк, не разобравшись чего хочет ТС, я бы не стал.
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 13:10 11
Цитата Сообщение от Tulosba Посмотреть сообщение
прокатит только при поддержке VLA
GCC
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2013, 13:10
Помогаю со студенческими работами здесь

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

Присвоить string'y массив char
char name1 = &quot;helloPeople&quot;; std::string name2; name2 = name1; // как можно это реализовать?...

Как присвоить значение вектора string массиву?
Есть вектор строк string. В одном элементе вектора точно не больше 100 символов. Нужно разделить...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru