Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 12:48   #1
dronchik2010
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 37
По умолчанию двойные пробелы

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

Код:
Код:
#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();
}
что выполняет в данном случае этот цикл
{
for(j=i;j<=strlen(st);j++)

st[j]=st[j+2];

i=i-2;
}
заранее спасибо!
dronchik2010 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Двойные массивы KrivieRuki Помощь студентам 5 26.10.2011 07:09
двойные кавычки в переменной mystiql Microsoft Office Access 4 11.11.2010 22:51
помогите решить двойные интегралы, но не простые... Vremya-Dengy Помощь студентам 18 28.09.2009 00:12
Двойные темы Ulex О форуме и сайтах клуба 1 23.12.2008 00:59