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

В произвольной строке удалить двойные пробелы и определить длину новой строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ 2 матрицы читающиеся из файла и 5 пунктов операций http://www.cyberforum.ru/cpp-beginners/thread404207.html
У меня возникла проблема с задачкой, работаю в Visual Studio 2010. Программа читает из файла две матрицы 3х3, выводит их на экран и затем предлагает пользователю меню из 5 пунктов: 1. Вычисление сумм диагональных элементов матриц 2. Вычисление произведения матриц поэлементно 3. Поменять местами угловые элементы в матрицах ( в каждой отдельно ) 4. Найти в матрицах количество элементов кратных...
C++ Почему не выводит на экран? Не выводит на экран. Не могу понять что не так. #include <iostream> #include <sstream>//для обработки строк /*#include <string>*/ using namespace std; class Book{ private: char* name_; http://www.cyberforum.ru/cpp-beginners/thread404202.html
Помогите создать программу с событием на с++ C++
Доброе утро всем! Мне всегда помогали на этом форуме и хотела еще раз обратиться к Вам! Вот задали опять задание новое. Если кто-то знает эту может поможет чем сможет! Всем буду очень благодарна!! Вот задание: 1. Реализовать с помощью механизма событий задачу, состоящую из трех потоков Р1, Р2 и Р3. Поток Р1 информирует потоки Р2 и Р3 о событии А, состоявшейся в потоке Р1 (рис. а). 2....
По введенному номеру единицы измерения и пути выдать значение в метрах C++
Оператор выбора Написать программу, которая бы по введенному номеру единицы измерения (1-миллиметр, 2-сантиметр, 3-метр, 4-километр) и пути S выдавала бы соответствующее значения в метрах.
C++ Задача по теории вероятностей http://www.cyberforum.ru/cpp-beginners/thread404170.html
Помоги пожалуйста написать программу: Два игрока играют в игру с равной возможностью выигрыша, на следующих условиях, игра продолжается до того момента, когда один из игроков набирает n выигрышей. Перед началом игры они образуют призовую ставку. По независящим от игроков обстоятельствам игра заканчивается с определенным счетом, спрашивается, в каком отношении нужно поделить призовую...
C++ Написать программу, которая: 1)выводит текст на экран дисплея; 2)определяет количество предложений текста и количество слов в каждом предложении; С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать 70 символов). Имя файла должно иметь расширение DAT. Написать программу, которая: 1)выводит текст на экран дисплея; 2)определяет количество предложений текста и количество слов в каждом предложении; 3)по нажатию произвольной клавиши поочередно... подробнее

Показать сообщение отдельно
qwerty2010
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 13

В произвольной строке удалить двойные пробелы и определить длину новой строки - C++

11.12.2011, 12:49. Просмотров 505. Ответов 1
Метки (Все метки)

Условие:
Написать программу, которая бы в произвольной строке (не более 80 символов) удаляла двойные пробелы и определяла длину новой строки.

Код:

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
#include <stdio.h>   /*стандартный заголовочный файл ввод/вывода*/
#include <conio.h>   /*консольный ввод-вывод, используемый в старых компиляторах*/
#include <string.h>   /*заголовочный файл содержащий функции для работы с нуль-термированными строками и различными функциями работы с памятью*/
main() 
{
  /*int-целый тип*/
 int i,j;
  /*char-символьный тип*/
 char *st;   /*При описании строки как указателя, в отличие от описания строки как символьного массива, не надо заботиться о том, чтобы длина введенного текста не превышала длину строки. Потому что происходит следующее: вводится строка с клавиатуры и как только нажимается клавиша ENTER, что является признаком окончания ввода, к введенной последовательности символов автоматически добавляется нулевой байт и вся эта конструкция записывается по адресу строки*/
 clrscr();   /*функция очистки экрана в С*/
printf("vvod stroki \n");  /**/
 gets(st);   /*функция обеспечивающая ввод строки*/
 
 for(i=0;i<=strlen(st);i++)   /*для каждого i пока i меньше длины строки st прибавлять по 1*/
 
if((st[i]==' ') && (st[i+1]==' ') ) /*это проверка на два идущих пробела*/
  {
    for(j=i;j<=strlen(st);j++)  
   
 st[j]=st[j+2]; 
   
 i=i-2; 
    }
printf("\n"); /*переход на новую строку*/
 puts(st);   /*функция обеспечивающая вывод строки*/
 printf("dlina = %d",strlen(st));   /*печать длины строки*/
getch();
}
что выполняет в данном случае этот цикл
C++
1
2
3
4
5
6
7
{
for(j=i;j<=strlen(st);j++) 
 
st[j]=st[j+2]; 
 
i=i-2; 
}
заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru