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

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

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

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

31.07.2015, 22:41. Просмотров 265. Ответов 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, а значение строки меняется мимолетно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2015, 22:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строка string. Не присваивается новое значение (C++):

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

Не присваивается значение переменной - 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...

Строка string и строка char - C++
Ребят помогиме. В общем задание такое дана строка типа string и строка char которая содержит символ к. В общем если в строке типа String ...

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

Не по теме:

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

0
tnk500
31.07.2015, 23:22
  #6

Не по теме:

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

0
nmcf
5324 / 4644 / 1553
Регистрация: 14.04.2014
Сообщений: 18,479
31.07.2015, 23:28 #7
& - адрес, если к конкретной переменной применить, это другое.
В стеке копия создаётся при вызове, так же как с целочисленным параметром.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 23:28
Привет! Вот еще темы с ответами:

Какое одинаковое значение можно вернуть из функций <string> f () и vector < <string> > f()? - C++
Понятное дело, что всё обсуждение будет вертеться вокруг аналога NULL. char* f_0 () { return NULL; } char** f_1 () { ...

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

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

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


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

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

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