Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
gogaloh
18 / 26 / 0
Регистрация: 14.03.2015
Сообщений: 729
1

Как скопировать строку типа std::string в другую строку такого же типа?

28.01.2016, 09:02. Просмотров 575. Ответов 12
Метки нет (Все метки)

Хотел скопировать строку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    string S;
    string Q;
    cout << " Enter S:" << endl;
    getline(cin, S);
    for (int i = 0; i < S.length(); i++)
    {
        Q[i] = S[i];
        cout << Q[i] << " ";
    }
    cout << endl << endl;
 
    system("pause");
    return 0;
}
Люди добрые, подскажите причину, что не так? Но только что бы даже я понял.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2016, 09:02
Ответы с готовыми решениями:

Скопировать с конца строки std::string четыре символа в другую строку
как функцией можно скопировать с конца строки 4 символа в другую? string a = &quot;123456&quot;; string...

Считать текст из файла в строку типа std::string (файловый ввод/вывод)
Доброго всем здравия, непонимание работы с файлами побуждает меня беспокоить вас. Программа...

Перевести строку типа string, в строку типа double
Помогите с кодом. Как строку типа стринг, например 123123.123123, перевести в тип double? Кода...

Читать строку типа string из файла, разбить ее на массив слов типа char
Нужно сделать так что бы строчка вида &quot;&lt;слово1&gt;:&lt;слово2&gt;:&lt;слово3&gt;:&lt;слово4&gt;&quot; , считывалась и каждое...

Как сформировать строку типа string
#include &lt;iostream&gt; #include &lt;string&gt; int main() { string s; s = 'a'; s = 'b';...

12
Kerry_Jr
Эксперт PHP
2213 / 2009 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
28.01.2016, 09:19 2
Цитата Сообщение от gogaloh Посмотреть сообщение
Люди добрые, подскажите причину
Q - пустая строка, нет в ней еще элементов. Попробуйте так
C++
1
2
3
4
5
for (int i = 0; i < S.length(); i++)
{
    Q += S[i];
    cout << Q[i] << " ";
}
или так
C++
1
2
3
Q = S;
for (int i = 0; i < Q.length(); i++)
    cout << Q[i] << " ";
0
Babysitter
239 / 134 / 52
Регистрация: 23.11.2015
Сообщений: 392
Завершенные тесты: 2
28.01.2016, 09:25 3

Не по теме:

Kerry_Jr, а почему не так?

C++
1
2
Q = S;
cout << Q << " ";



мда, что-то я совсем с утра не очень.
0
gogaloh
18 / 26 / 0
Регистрация: 14.03.2015
Сообщений: 729
28.01.2016, 10:29  [ТС] 4
Kerry_Jr, Спаси Боже, все заработало, но это был маленький фрагмент. Надо сейчас представить как все будет в целом.

Добавлено через 1 час 1 минуту
Kerry_Jr, У Вас глаза добрые, значит и человек Вы не самый плохой.
Если введете в программу латинский алфавит увидите, что я хочу получить.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    string S;
    string Q;
    cout << endl << Q;     // Выводит пустую строку.
    cout << " Enter S:" << endl;
    getline(cin, S);
    int j = 0, a = 3, b = 0;
    for (int n = 0; n < a; n++)
    {
        for (int i = b; i < S.length(); i += a)
        {
            Q += S[i];
            cout << Q[j] << " ";
            j++;
        }  // В этом месте полученый результат хочу помещать в отдельную строку
           // в планах работать с этими строками.
        b++;
        cout << endl;
    }
    cout << endl << Q;
    cout << endl << endl;
 
    system("pause");
    return 0;
}
0
28.01.2016, 10:29
Babysitter
239 / 134 / 52
Регистрация: 23.11.2015
Сообщений: 392
Завершенные тесты: 2
28.01.2016, 12:27 5
gogaloh, Если ввести "ABCDEFZHIKLMNOPQRSTVX", то вывод
A D Z K N Q T
B E H L O R V
C F I M P S X
В Q лежит строка "ADZKNQTBEHLORVCFIMPSX".
Что именно требуется "поместить в отдельную строку"?
0
gogaloh
18 / 26 / 0
Регистрация: 14.03.2015
Сообщений: 729
28.01.2016, 12:37  [ТС] 6
Цитата Сообщение от Babysitter Посмотреть сообщение
A D Z K N Q T
строка,
Цитата Сообщение от Babysitter Посмотреть сообщение
B E H L O R V
строка,
Цитата Сообщение от Babysitter Посмотреть сообщение
C F I M P S X
строка, потом с каждой из этих строк будет свои действия.
0
Babysitter
239 / 134 / 52
Регистрация: 23.11.2015
Сообщений: 392
Завершенные тесты: 2
28.01.2016, 12:50 7
gogaloh,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <vector>
#include <string>
using namespace std;
 
 
int main()
{
    string S;
    string Q;
    cout << endl << Q;     // Выводит пустую строку.
    cout << " Enter S:" << endl;
    getline(cin, S);
 
    vector<string> result;
 
    int j = 0, a = 3, b = 0;
    for (int n = 0; n < a; n++)
    {
        string temp;
        for (int i = b; i < S.length(); i += a)
        {
            Q += S[i];
            temp += Q[j];
            temp += " ";
            j++;
        }
        result.push_back(temp);
        b++;
        cout << endl;
    }
 
    // вывод результатов
    for(auto it = result.begin(); it != result.end(); ++it)
        cout << *it << endl;
 
    cout << endl << Q;
    cout << endl << endl;
 
    return 0;
}
1
Croessmah
++Ͻ
15658 / 8818 / 1691
Регистрация: 27.09.2012
Сообщений: 21,721
Записей в блоге: 2
Завершенные тесты: 2
28.01.2016, 13:14 8
C++
1
2
3
4
5
6
7
    int j = 0, a = 3, b = 0;
    vector<string> result;
    result.resize(a) ;
    for (size_t n = 0, size = S.size(); n < size; n++)
    {
        result[n%a] += S[n] ;
    }
0
gogaloh
18 / 26 / 0
Регистрация: 14.03.2015
Сообщений: 729
28.01.2016, 13:23  [ТС] 9
Babysitter, Спасибо большое, но мне допустим надо взять
Цитата Сообщение от Babysitter Посмотреть сообщение
B E H L O R V
, как отдельную строку и с ней произвести какие-то действия.
0
Babysitter
239 / 134 / 52
Регистрация: 23.11.2015
Сообщений: 392
Завершенные тесты: 2
28.01.2016, 13:27 10
gogaloh,
C++
1
2
3
//result[0] == "A D Z K N Q T "
//result[1] == "B E H L O R V "
//result[2] == "C F I M P S X "
0
gogaloh
18 / 26 / 0
Регистрация: 14.03.2015
Сообщений: 729
28.01.2016, 14:07  [ТС] 11
Babysitter, именно это мне и надо было! Но вопросов возникло еще больше. Сейчас сделаю пошаговую отладку, может на некоторые отвечу сам.

Добавлено через 25 минут
C++
1
result.push_back(temp);
// Помещаем строку temp в вектор строк result, почему все записывается в три разные строки вектора, а не в одну?
C++
1
2
3
    // вывод результатов
    for (auto it = result.begin(); it != result.end(); ++it)
        cout << *it << endl;
И это еще прокомментируйте, только "на пальцах".
0
Babysitter
239 / 134 / 52
Регистрация: 23.11.2015
Сообщений: 392
Завершенные тесты: 2
28.01.2016, 15:43 12
gogaloh, вектор, это контейнер, который работает как массив переменного размера. push_back - добавление нового элемента, увеличивает его размерность на единицу. под капотом обычный массив, погугли и почитай про std::vector.
это
C++
1
2
3
// вывод результатов
    for (auto it = result.begin(); it != result.end(); ++it)
        cout << *it << endl;
есть работа с контейнерами в стиле стандартной библиотеки, тут используется понятие итератора - нечто напоминающее указатель на объект. но ты можешь делать по старинке
C++
1
2
3
// вывод результатов
    for (unsigned int i = 0; i < result.size(); ++i)
        cout << result[i] << endl;
0
gogaloh
18 / 26 / 0
Регистрация: 14.03.2015
Сообщений: 729
28.01.2016, 15:59  [ТС] 13
Babysitter, Спаси тебя Боже.
0
28.01.2016, 15:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2016, 15:59

Как считать строку типа string?
Доброго времени суток, у меня возникла такая проблема: когда строку задаю константой - программа...

Как создать строку (string) из нескольких элементов типа char?
Как мне создать строку типа string из некоторого количества элементов типа char на C++; Допустим...

Создать строку, состоящую из символов, которые входят как в одну, так и в другую строку (не string-ом)
Условие: Заданы две строки. Построить новую строку, состоящую из символов, которые входят как в...


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

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

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