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

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

Восстановить пароль Регистрация
 
qwerty2010
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 13
11.12.2011, 12:49     В произвольной строке удалить двойные пробелы и определить длину новой строки #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; 
}
заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2011, 12:49     В произвольной строке удалить двойные пробелы и определить длину новой строки
Посмотрите здесь:

C++ Удалить лишние пробелы в строке
Удалить двойные пробелы и определить длину новой строки C++
C++ Проверить, одинаково ли число открывающихся и закрывающихся скобок в данной строке. Определить длину строки, результат вывести на экран.
Строка: удалить лишние пробелы и определить слово с минимальным кол-вом согласных в строке C++
Определить длину и позицию слова, которое имеет наименьшую длину в строке C++
Дана строка. Удалить из строки все двойные символы. Пример: “asddewwf” → “asdewf” C++
Определить длину строки и сколько раз встречается символ в строке C++
C++ Определить длину строки,удалить из строки все символы, которые равны заданному
Удалить лишние пробелы в строке C++
Удалить все пробелы в строке C++
C++ Удалить лишние пробелы в строке
C++ Определить длину введенной строки, и, если длина больше заданной, то удалить символы от a до z

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lawlietb32
 Аватар для Lawlietb32
14 / 14 / 2
Регистрация: 31.03.2011
Сообщений: 118
11.12.2011, 13:08     В произвольной строке удалить двойные пробелы и определить длину новой строки #2
смешение строки на два символа влево... а i-2 используется для смещение позиции (вдруг там следом снова два пробела идут)
Yandex
Объявления
11.12.2011, 13:08     В произвольной строке удалить двойные пробелы и определить длину новой строки
Ответ Создать тему
Опции темы

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