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

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

Войти
Регистрация
Восстановить пароль
 
agent7991
0 / 0 / 0
Регистрация: 17.05.2015
Сообщений: 66
#1

Строка string. Не присваивается новое значение - C++

31.07.2015, 22:41. Просмотров 252. Ответов 6
Метки нет (Все метки)

Есть строка:
C++
1
string str_in = "A";
Она используется в созданной мной функцией как один из аргументов:
C++
1
fuction(arg1,arg2,str_in,arg4);
Внутри функции значение строки меняется:
C++
1
2
3
4
5
6
7
8
9
char sim;
//string m;
 
string = string + sim;
// так же использовались способы:
// string.push_back(char);
//
// m = sim;
// string.insert(string.length(), m, 1, 1);
В конце концов(при выходе из функции) значение строки становится стоковым (таковым, которое было указано при объявлении переменной), то есть "A".

Суть действий добавить в конец новый символ.

Доп инфо:
Функция в свою очередь типа 'bool' возвращает значение true или false, а значение строки меняется мимолетно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2015, 22:41     Строка string. Не присваивается новое значение
Посмотрите здесь:

Не присваивается значение переменной - C++
Привет всем форумчанам! :) Собственно само задание в прикрепленных изображениях. Независимо от того, какое бы я значение ни ввел,...

Неправильно присваивается значение массиву - C++
Неправильно присваивается значение массиву Вот код: #include <iostream> using namespace std; int main() { int n,p =...

Не присваивается значение элементу массива LPWSTR - C++
Есть кусок кода некоторой программы на C++ LPWSTR dir; GetModuleFileName(NULL, dir, 300); //dir='!'; int i, j=0; ...

Подскажите, почему значению функции присваивается true? Что сделать чтобы передавалось значение? - C++
#include<iostream> #include<math.h> using namespace std; template<typename T> T f1(T a, T b) { if (a == 0){ cout << "no...

Почему переменной присваивается произвольное значение("мусор")? - C++
Мой черновой вариант кода. Он очень черновой так что многое не суть важно, но переменной х я присваиваю значение 0. Если после приглашения...

Не генерируется новое рандомное значение - C++
Привет, когда я нажимаю на H (eng) в это программе, у меня не генерируется новое рандомное значение, а остается первое. Почему? И как это...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5267 / 4587 / 1538
Регистрация: 14.04.2014
Сообщений: 18,218
31.07.2015, 22:44     Строка string. Не присваивается новое значение #2
Ты копию изменяешь, передавай по ссылке (&).
agent7991
0 / 0 / 0
Регистрация: 17.05.2015
Сообщений: 66
31.07.2015, 23:00  [ТС]     Строка string. Не присваивается новое значение #3
nmcf, спасибо, все прекрасно работает.
Не разъясните на счет копий? Я знаю что символ & ссылает на адрес, и мне понятно почему заработало, но как к примеру функция создает копии? Она скрыто объявляет приватные переменные с аналогичным названием и пользуется ими? Начал си недавно, и мне очень кстати узнать побольше тонкостей.
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,269
Завершенные тесты: 3
31.07.2015, 23:05     Строка string. Не присваивается новое значение #4
agent7991, в функцию аргументы передают двумя путями: по значению и по ссылке. Вот пример:
C++
1
2
int take(SomeClass a);  // по значению
int please(SomeClass& a);   // по ссылке
В первом случае создастся копия аргумента, и с копией работа в функции и будет проходить. А если нужно сам аргумент изменить, или избежать накладных расходов памяти, тогда его передают по ссылке.
Kerry_Jr
31.07.2015, 23:11
  #5

Не по теме:

Цитата Сообщение от tnk500 Посмотреть сообщение
двумя путями
можно ещё по указателю передавать

tnk500
31.07.2015, 23:22
  #6

Не по теме:

Kerry_Jr, не так выразился. Я в общем случае имел в виду, что передавать параметры можно либо через копии, либо напрямую

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 23:28     Строка string. Не присваивается новое значение
Еще ссылки по теме:

строка с ипользыванием string - C++
Дано предложение. Напечатать все его слова, отличные от слова привет. Решить задачу с помощью типа (класса) string.

Как добавить новое значение в одномерный динамический массив? - C++
При создании динамического массива и добавления нового значение, значение куда-то теряется. Кусок кода: void set_new_value (int...

Неправильно инициализируется строка String - C++
Добрый день, уважаемые форумчане! Прошу вашей помощи в следующем вопросе: когда я инициализирую строку String con_str; ...

Utf-8 строка в std::string - C++
Добрый вечер, есть строка в UTF-8 - парсер(rapidjson cocos2dx c++) читаёт её как std::string, дальнейшее приобразование в wstring не...

Строка string, последний символ - C++
Подскажите, совсем голову сломал) В char массиве мы можем определить последний символ как '\0' А как найти его в string? Вот к...


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

Или воспользуйтесь поиском по форуму:
nmcf
5267 / 4587 / 1538
Регистрация: 14.04.2014
Сообщений: 18,218
31.07.2015, 23:28     Строка string. Не присваивается новое значение #7
& - адрес, если к конкретной переменной применить, это другое.
В стеке копия создаётся при вызове, так же как с целочисленным параметром.
Yandex
Объявления
31.07.2015, 23:28     Строка string. Не присваивается новое значение
Ответ Создать тему
Опции темы

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