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

Удалить последовательности, состоящие из 2 и более пробелов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построить матрицу В такого же размера, как А, элементы которой обладают заданным свойством http://www.cyberforum.ru/cpp-beginners/thread694772.html
Построить матрицу В такого же размера, как А, элементы которой обладают следующим свойством: элемент В равен максимальному из элементов матрицы А, расположенных в строке i. как это реализовать?
C++ Дан набор слов на английском языке, разделенных пробелами Дан набор слов на английском языке, разделенных пробелами. Выделить в последовательности нечетные слова прописными буквами http://www.cyberforum.ru/cpp-beginners/thread694769.html
C++ Есть программа, нужно определить какое задание она выполняет
Ну в общем так: у меня есть 6 готовых программ и список возможных заданий к ним. Преподаватель решил задачи, но не сказал задание, а дал возможные варианты. К первой задачи я нашла, вторая вообще не запустилась (точнее запустилась, но без толку), а вот остальные 4 между собой похожые и я нашла возможных 4 задания. Но вот розобраться какое к какой программе - не могу... ведь задача состоит со...
Составьте программу, которая вычисляет произведение чисел от 1 до n. Значение n вводится с клавиатуры C++
Помогите решить с использованием цикла do Составьте программу, которая вычисляет произведение чисел от 1 до n. Значение n вводится с клавиатуры. Заранее спасибо!
C++ Что значит Асинхронный код? http://www.cyberforum.ru/cpp-beginners/thread694744.html
Каак понять?Допустим есть просто код который переходит в асемблер.И потом выполяется.Ну многое не понятно.
C++ Формирование стека Доброго дня. Возникли следующие вопросы , void push(stac **top ,int d){ // 1. Две ** означают указатель на динамическую переменную? stac *pv = new stac; pv->d = d; pv->p = *top; // 2.Данная строка "присваивает текущему элементу ссылку на предыдущий?" *top = pv; // 3.Что происходит в данной строчке ? подробнее

Показать сообщение отдельно
yatak
Сообщений: n/a

Удалить последовательности, состоящие из 2 и более пробелов - C++

11.11.2012, 18:18. Просмотров 439. Ответов 3
Метки (Все метки)

Задание: удалить последовательности, состоящие из 2 и более пробелов. Использовать новые массивы и блоки запрещено.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include  <iostream>
#include  <string.h>
 
using namespace std;
 
int main()
{
    char tmp [80];
    char *ps;
 
    // Удаляем лишние пробелы. Смещаем указатель до конца выделенной области читая каждый символ.
        // Если символ ' ' и следующий за ним тоже, то в цикле смещаем все символы в памяти влево.
        for (char *ps3 = ps; *ps3; ps3++)
        {
            while (*ps3 == ' ' && *(ps3 + 1) == ' ')
            {
                for (char *ps4 = ps3; *ps4; ps4++)
                {
                    *ps4 = *(ps4+1);
}
Этот код у меня работает, но он оставляет 1 пробел, т.е. если было 12 пробелов он будет удалять, пока не останется один пробел, а мне нужно удалить, чтобы ни 1 не осталось (т.е. "слепить" два слова).
Я пробовала писать

if ((*ps3==' ') && (*(ps3+1)==' '))
{

while((*(ps3+1)==' ') && (*ps3))
результат тот же
помогите, пожалуйста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru