Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61
1

Разъясните задачу

26.03.2020, 22:46. Показов 1009. Ответов 1

Author24 — интернет-сервис помощи студентам
(Суть задачи: сделать так, чтобы вместо пробелов ставилась сначала запятая, а потом пробел)
Она решена правильно.
Объясните мне пожалуйста такие моменты в этой задаче.
Во первых почему функция insert ставит запятую перед i (пробелом), а не после? Ведь в аргументах идет сначала i, то место после которого начинается вставка. Насколько я понимаю, стоит пробел, это точка начала вставки, а после пробела должна вставляться запятая по логике.
Во вторых зачем после функции insert ставить i++, если в цикле for уже есть ++i ?
И наконец, почему в insert вместо "," нельзя поставить ',' ?


Вот сам код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL,"rus");
    string s = "I am banana man";
    cout << s << endl;
    for(int i=0; i<s.size(); ++i)
    {
        if(isspace(s[i]))
        {
            s.insert (i, ",");
            i++;
        }
    }
    cout << s << endl;
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2020, 22:46
Ответы с готовыми решениями:

Разъясните пожалуйста задачу
Вот задача. #include &lt;iostream&gt; using namespace std; const int n=3; struct STRUCT { ...

наткнулся на сложную задачу из книги бьёрна страуструпа кто-то знает ответ на эту задачу - C++
задача из книги бьерна страуструпа.(та самая сложная задача) 6. Теперь измените тело цикла так....

Разъясните код
Здравствуйте! Расскажите, пожалуйста, что обозначает это, почему вообще так пишется: #define...

Разъясните задание
Сформировать динамический массив, состоящий из динамических строк. (Это я понял как сделать). Но...

1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
26.03.2020, 23:23 2
Лучший ответ Сообщение было отмечено ErritoQN как решение

Решение

Цитата Сообщение от ErritoQN Посмотреть сообщение
почему функция insert ставит запятую перед i (пробелом), а не после
так работает функция insert - точка вставки: новое содержимое вставляется перед символом с индексом i
Цитата Сообщение от ErritoQN Посмотреть сообщение
зачем после функции insert ставить i++, если в цикле for уже есть ++i
иначе опять попадёте на этот же пробел, который сдвинулся направо
Цитата Сообщение от ErritoQN Посмотреть сообщение
почему в insert вместо "," нельзя поставить ','
такой синтаксис insert
1
26.03.2020, 23:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2020, 23:23
Помогаю со студенческими работами здесь

Разъясните пожалуйста
int sd(int n, int d = 1) { if(n == 0) { return 0; } else { ...

Разъясните задание
Есть файл(.txt) с символами,нужно следующее сделать Записать в новый файл символы из исходного,...

Списки разъясните
Совсем недавно начал изучать списки и всё никак не могу понять, как их реализовывать правильно в...

Разъясните условие задачи
Есть задача, правда на англицком, переводить не стану что бы не напартачить. A call center has...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru