Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/55: Рейтинг темы: голосов - 55, средняя оценка - 4.89
3 / 3 / 0
Регистрация: 06.12.2010
Сообщений: 70

удалить пробелы

24.04.2011, 21:19. Показов 10982. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
{ int i,s;
strcpy(str, Edit1->Text.c_str());
for(i=0;i<strlen(str);i++)
{if (str[i]==' ') str[i]=str[i+1];
 ;}
Memo1->Lines->Add(str);
код это удаляет пробелы, ду дублиркя след. символ...пример к о т- коотт?помогите..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2011, 21:19
Ответы с готовыми решениями:

Удалить лишнее пробелы
Суть задания удалить лишние пробелы в строке. String str = Edit1-&gt;Text; int k = str.Length(); for(int i = 1;i &lt;= k;i++)...

Удалить все пробелы кроме последнего
учусь С++ , и по заданию нужно удалить все пробелы кроме последнего, не могу понять как поставить нужное условие: void __fastcall...

В символьной строке, каждые два соседних слова разделены одним пробелом.Удалить из строки все пробелы.
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом...

19
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
24.04.2011, 21:26
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
        char str[256] = {0};
        AnsiString text = Edit1->Text;
 
        int len = Edit1->Text.Length(), count = 0;
    for( int i=1; i<= len; i++)
    {
            if (text[i] != ' ')
                {
                    str[count] = text[i];
                        count++;
                }
    }
        Memo1->Lines->Add(str);
1
3 / 3 / 0
Регистрация: 06.12.2010
Сообщений: 70
24.04.2011, 21:33  [ТС]
а можешь чуть пояснить код
C++
1
2
3
4
if (text[i] != ' ')
                {
                        str[count] = text[i];
                        count++;
и что такое сount??
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
24.04.2011, 21:46
kzru_hunter, что за bullshit?

C++
1
2
3
4
5
6
7
8
9
10
11
12
String SpaceToNext(String s)
{
if (s.Length() <= 2)
{
  if (s[0] != ' ') return s[0] + s[0];
  else return "";
}
for (int i = s.Length() - 2; i >= 0; i++)
  if (s[i] == ' ') s[i] = s[i+1];
 
return s;
}
0
103 / 74 / 10
Регистрация: 29.05.2010
Сообщений: 192
24.04.2011, 22:47
Продолжим тему
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <string>
void DeleteSomeChar(char *Src, char *Dest, char DelChar)
{
  char *pDest = Dest, *pSrc = Src, *DelPos = NULL;
  do
  {
    DelPos = strstr(pSrc, &DelChar);
    if(DelPos ==  NULL) DelPos = pSrc + strlen(pSrc);
    int n = DelPos - pSrc;
    strncpy(pDest, pSrc, n);
    pDest += n;
    pSrc = DelPos + 1;
  } while(strlen(pSrc));
  *pDest = 0;
}
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
25.04.2011, 05:38
LenaLitvinova
Эта часть кода сравнивает каждый символ исходного текста на наличие пробела. Если при этом символ - не пробел, а что-то другое, то записывает этот символ в конец строки str.
count использовал, чтобы запоминать позицию в строке str, в которую в следующий раз нужно записать очередной символ.

iama
Что не так в моем коде? Я не делал отдельную функцию, потому что этого не просилось. На всякий случай вот сама функция (немного изменил):
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
29
30
// Объявление функции
AnsiString DeleteSpaces(AnsiString text);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    // Использование функции. Берёт текст из Edit1 и отображает конечный текст без пробелов
    ShowMessage( DeleteSpaces(Edit1->Text) );
}
//---------------------------------------------------------------------------
 
 
// Сама функция
AnsiString DeleteSpaces(AnsiString text)
{
        int len = text.Length(), count = 0;
        AnsiString str;
        str.SetLength( len + 1 );
 
        for( int i=1; i<= len; i++)
        {
                if (text[i] != ' ')
                {
                        str[++count] = text[i];
                }
        }
        str[count+1] = 0;
 
        return str;
}
Мне вот, например, твой код не понравился. Во, первых, он нерабочий.
И в добавок:
1. код очень плохо отформатирован
2. доступ к символу типа AnsiString начинается с единицы, а не с нуля (из-за чего и не работает код).
3. for (int i = s.Length() - 1; i >= 1; i++)
4. неправильный способ используется, причём чтобы сделать код рабочим, нужно ещё один вложенный цикл делать.
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
26.04.2011, 01:57
Короче, крутые хакеры, я думаю лучше будет так, ага?
C++
1
2
#include <StrUtils.hpp>
Memo1->Lines->Add(ReplaceStr(Edit1->Text," ",""));
Добавлено через 4 минуты
"Всё уже украдено до нас..."

В книге по STL написано так: "Перед тем как написать свой шаблон, внимательно проверьте,
не существует ли он уже в библиотеке? Так как вы потратите много времени, а лучше, чем
профессионалы всё равно не напишите!"
2
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
26.04.2011, 06:52
LenaLitvinova, а я так и не понял - символ нужно добавлять ? или только удалять пробелы ?

Maluda,
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
27.04.2011, 00:16
LK, тебе что не нравится?
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.04.2011, 00:18
все, кроме кода
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
27.04.2011, 00:24
Моего кода?
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.04.2011, 00:27
ну , спрашивал же ты
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
27.04.2011, 00:29
Ну, а как ты, будешь удалять пробелы в строке?
Поделись секретом, о, гуру с++?
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.04.2011, 00:37
да почти так же - функцией StringReplace, и я не говорил , что мне не нравится твой код
и можешь говорить мне скромно - "сенсей" ...
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
27.04.2011, 00:43
Понятно, ну ладно, извини, что пошатнул трон местного короля.
П.С. Кстати, у тебя аватар верх ногами перевёрнут, - плохая примета :-) :-) :-)
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.04.2011, 00:48
1. какой трон, так себе, табуретка ...
2. не, он правильный
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
27.04.2011, 01:06
У тебя над аватаром тень, которая говорит о том, что это - перевёрнутое изображение,
хотя бы в фотожабе тень вниз перенеси.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.04.2011, 01:08
это потускневший нимб
0
 Аватар для Spaum145
2 / 2 / 1
Регистрация: 23.08.2009
Сообщений: 21
27.05.2011, 09:27
Так, люди, не отвлекаемся. Флиртом можете заниматься на другом форуме.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.05.2011, 14:12
Spaum145, жизнь продолжается, а ты - отстаешь , новичок (хотя я бы написал через ё) .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.05.2011, 14:12
Помогаю со студенческими работами здесь

Во введенном тексте удалить все пробелы, если пробелы присутствуют
Создать программу, которая спрашивает имя пользователя и здоровается с ним. Затем, предлагается ввести тест - во введенном тексте удалить...

Удалить повторяющиеся пробелы, также пробелы в начале и в конце строки (ассемблерная вставка)
Написать ассемблерную вставку, реализующую следующую обработку строки: согласно варианту. Оформить ее в виде отдельной функции....

Как удалить все пробелы в строке, и если есть кавычки, то между ними пробелы заменить на %
Как удалить все пробелы в строке, и если есть кавычки, то между ними пробелы заменить на %? Вот пример строки: $str = 'Большая,...

Удалить в строке все лишние пробелы, то есть серии подряд идущих пробелов заменить на одиночные пробелы
Я уже решал эту задачу с помощью циклов и символьных массивов, и выкладывал на этот форум , но я не знаю как решить её , с помощью типа...

Удалить все лишние пробелы. Удалить из него первое слово. Дописать в тот же файл измененую строку
я создал текстовый файл теперь нужно удалить все лишние пробелы. Удалить из него первое слово. Дописать в тот же файл измененную строку.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru