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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
hackgamn
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 7
14.11.2013, 11:08     Как присвоить типу char значение string? #1
При выполнении строки

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

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

Цитата Сообщение от hackgamn Посмотреть сообщение
w.at(1)=l;
Если w - это вектор символов, а l - строка, то неплохо бы узнать, чего Вы хотите добиться.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
14.11.2013, 12:49     Как присвоить типу char значение string? #7
Цитата Сообщение от Ilot Посмотреть сообщение
at это обращение к элементу массива
Вектора.
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
14.11.2013, 12:52     Как присвоить типу char значение string? #8
Цитата Сообщение от Tulosba Посмотреть сообщение
Если w - это вектор символов...
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Вектора.
Пожалуй, не обязательно вектор. Это может быть любой контейнер имеющий рандомный итератор как то деки, строки.
SatanaXIII, под массивом подразумевается контейнер с произвольным доступом к элементам.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 13:00     Как присвоить типу char значение string? #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;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
14.11.2013, 13:04     Как присвоить типу char значение string? #10
Цитата Сообщение от programina Посмотреть сообщение
char s2[str.size()+1];
прокатит только при поддержке VLA (т.е. не стандарт)
Зачем переменная s вообще не понятно.
К тому же предлагать копирование строк, не разобравшись чего хочет ТС, я бы не стал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2013, 13:10     Как присвоить типу char значение string?
Еще ссылки по теме:

как присвоить переменной char значение слова ? C++
Надо указателю на long int присвоить значение указателя на char C++
C++ Как присвоить переменной типа String значение argv[0]?

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

Или воспользуйтесь поиском по форуму:
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 13:10     Как присвоить типу char значение string? #11
Цитата Сообщение от Tulosba Посмотреть сообщение
прокатит только при поддержке VLA
GCC
Yandex
Объявления
14.11.2013, 13:10     Как присвоить типу char значение string?
Ответ Создать тему
Опции темы

Текущее время: 02:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru