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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2009, 11:54   #1
Иван_Секретарев
 
Регистрация: 21.11.2009
Сообщений: 4
По умолчанию Работа со строками (язык C)

помогите пожалуйста написать программу: В символьной строке удалить все лишние подряд идущие пробелы.
Иван_Секретарев вне форума Ответить с цитированием
Старый 21.11.2009, 14:09   #2
Card1nal
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 44
По умолчанию

ну хоть бы попыталсья, что ли...
строка, я надеюсь, динамическая?
ну, в любом случае, следующий код даже для статичной)

Код:
char            *no_spaces(char *str)
{
  int           i = 0;
  int           j = 0;
  char          *dest;

  dest = malloc((strlen(str) + 1) * sizeof(char));
  while (str[i] != '\0')
    {
      while (str[i] == str[i + 1] == ' ')
        {
          i++;
        }
      dest[j] = str[i];
      i++;
      j++;
    }
  return (dest);
}
Card1nal вне форума Ответить с цитированием
Старый 21.11.2009, 15:00   #3
Secc
Пользователь
 
Аватар для Secc
 
Регистрация: 19.10.2009
Сообщений: 30
По умолчанию

Код:
//---------------------------------------------------------------------------
#include <iostream.h>
#include <windows.h>
#include <conio.h>
#include <string.h>
//------------------------------------------------------------------------------
void space_delete(char A[100],int x)
{
int i;
  for(i=0;i<x;i++)
    if(A[i]==' ')
      if(A[i+1]==' ')
          {
          for(int j=i;j<x;j++)
          A[j]=A[j+1];
          x--;
          i--;
          }
  for(int i=0;i<x;i++)
  cout<<A[i];
}
void main()
{
int n;
char Arr[100];
  cout<<"enter string\n";
  cin.get(Arr,100,'\n');
  n=strlen(Arr);
  space_delete(Arr,n);
getch();
}
//---------------------------------------------------------------------------
Спасибо! Кэп!!
FORZA LAZIO e NON MOLLARE MAI !!
Secc вне форума Ответить с цитированием
Старый 21.11.2009, 15:21   #4
Card1nal
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 44
По умолчанию

Ну, так тоже можно)
Card1nal вне форума Ответить с цитированием
Старый 22.11.2009, 11:56   #5
Иван_Секретарев
 
Регистрация: 21.11.2009
Сообщений: 4
По умолчанию

Secc
Код не работает.Выдает ошибку в строке:

Цитата:
Сообщение от Secc Посмотреть сообщение
Код:
  for(int i=0;i<x;i++)
Говорит что i: redefenition.

Card1nal
Я пытался,даж написал что-то похожее,проблема в том что я терь не могу разобраться в том что написал,потом вроде разобрался,и выяснилось что работает не правильно(((не мог бы пояснить свой код?
Иван_Секретарев вне форума Ответить с цитированием
Старый 24.11.2009, 19:35   #6
Card1nal
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 44
По умолчанию

скажи именно, что ты не понимаешь в моей функции?
Кста, ошибка в программе sec'а в строке for(int i=0;i<x;i++)
убери int после скобки, все заработает)
Card1nal вне форума Ответить с цитированием
Старый 28.11.2009, 13:31   #7
Иван_Секретарев
 
Регистрация: 21.11.2009
Сообщений: 4
По умолчанию

Card1nal, что за метод malloc в твоем коде?
А не подскажешь как эту строку переписать с языка С++ на С?? cin.get(Arr,100,'\n');
Иван_Секретарев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками.Язык С Bella Помощь студентам 2 16.11.2009 18:01
Работа со строками (язык Си) Darh Помощь студентам 6 10.11.2009 19:07
c#. Работа со строками alestro07 Помощь студентам 1 23.10.2009 00:34
Работа со строками. Си Влад-mego Помощь студентам 7 24.03.2009 10:12
Работа со строками Nividimka Помощь студентам 11 03.03.2007 15:58