С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Elize
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 31
#1

Удаление пробелов - C++

28.12.2013, 15:46. Просмотров 784. Ответов 10
Метки нет (Все метки)

Помогите пожалуйста доделать программу(удаление пробелов в начале и в конце строки).
Само задание:Удаление лишних пробелов в строке (пробелы в начале и в конце строки, а также любые не единичные пробелы между словами).
Любые не единичные пробелы между словами программа удаляет,
осталось реализовать удаление пробелов в начале и в конце строки.
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
31
32
#include <string.h>
#include <conio.h>
#include <iostream>
#include<iostream>
#include<math.h>
using namespace std;
 
#pragma argsused
extern void deletes(char *s, int pos);
 void deletes(char *s, int pos)
{ int i;
if ((s[pos]== ' ') && (s[pos+1]== ' '))
{ deletes(s,pos+1); }
for (i = pos; i < strlen(s)-1; i++)
 {
  s[i]=s[i+1];
}
s[i]=0;
 
}
int main(int argc, char* argv[])
{
char s[150];
int i;
gets(s);
for (i = 0; i < strlen(s); i++)
 {  if ((s[i]==' ') && (s[i+1]==' '))
    deletes(s,i+1);
}
 cout <<s;
 getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2013, 15:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаление пробелов (C++):

Создание программы со своей библиотекой ( удаление элементов с N по M в строке и удаление лишних пробелов(если 2 и более оставить один)) - C++
добрый день. помогите, пожалуйста понять мои ошибки в работе. Мне нужно написать программу со своей библиотекой, которая включает в себя...

удаление пробелов - C++
предложите 2 варианта функции, удаляющей из строки ведущие и концевые пробелы

Удаление пробелов - C++
Нужна программа , которая удаляет все пробелы в строке! Помогите пожалуйста!

Удаление пробелов - C++
Доброго времени суток ув. форумчане! Дали задание до 6.11, вчера вроде понял как делать, а сегодня что-то голова не варит. В общем сама...

Удаление пробелов - C++
Доброго времени суток ув. форумчане! Дали задание до 6.11, вчера вроде понял как делать, а сегодня что-то голова не варит. В общем сама...

Удаление лишних пробелов - C++
Помогите пожалуйста с задачей: Разработать алгоритм и программу для удаления лишних пробелов в тексте (лишними считать&gt; 1 пропуска).

10
zss
Модератор
Эксперт С++
6579 / 6141 / 2023
Регистрация: 18.12.2011
Сообщений: 16,006
Завершенные тесты: 1
28.12.2013, 15:58 #2
добавьте
C++
1
2
3
4
if (s[0]==' ')
    deletes(s,0);
if (s[strlen(s)-1]==' ')
    deletes(s,strlen(s)-1);
1
uhx
60 / 60 / 6
Регистрация: 11.07.2013
Сообщений: 304
28.12.2013, 16:17 #3
Вообще все можно заменить на:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
using namespace std;
 
int main(){
    setlocale(0,"");
    string str = "  Это просто текст   для        cyberforum.ru        .";
    size_t fnd = str.find("  ");
    while(fnd != string::npos){
        if(str.find(" ")<=1) str.replace(str.find(" "),1,"");
        else str.replace(fnd, 2, " ");
        fnd = str.find("  ");
    }
    cout<<str;
    system("pause>>void");
}
Только в конце один пробел остается
0
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,633
28.12.2013, 16:34 #4
Используйте istringstream
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <sstream>
#include <string>
 
int main()
{
    const std::string str = "   Eniki   beniki   eli vareniki    ";
    std::istringstream ist(str);
    for (std::string word; ist >> word; std::cout << word << " ");
}
0
alexTortex
0 / 0 / 2
Регистрация: 30.10.2013
Сообщений: 8
28.12.2013, 16:35 #5
C
1
2
3
4
5
6
7
8
char * temp = str;
    while(*temp == ' ') temp++;
    strcpy(str, temp);
    int S = strlen(temp);
    str[S + 1] = '\0';
 
    while(str[--S] == ' ');
    str[S + 1] = '\0';
Вставьте код в начало функции
0
Elize
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 31
28.12.2013, 19:01  [ТС] #6
zss, Спасибо, все теперь работает как надо
0
Elize
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 31
29.12.2013, 19:31  [ТС] #7
Подскажите пожалуйста, при создании dll какую функцию по этому коду прописывать в .h???
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
31
32
33
34
35
#include <string.h>
#include <conio.h>
#include <iostream>
#include<iostream>
#include<math.h>
using namespace std;
 
#pragma argsused
extern void deletes(char *s, int pos);
 void deletes(char *s, int pos)
{ int i;
if ((s[pos]== ' ') && (s[pos+1]== ' '))
{ deletes(s,pos+1); }
for (i = pos; i < strlen(s)-1; i++)
 {
  s[i]=s[i+1];
}
s[i]=0;
 if (s[0]==' ')
deletes(s,0);
if (s[strlen(s)-1]==' ')
deletes(s,strlen(s)-1);
}
int main(int argc, char* argv[])
{
char s[150];
int i;
gets(s);
for (i = 0; i < strlen(s); i++)
 {  if ((s[i]==' ') && (s[i+1]==' '))
    deletes(s,i+1);
}
 cout <<s;
 getch();
}
0
zss
Модератор
Эксперт С++
6579 / 6141 / 2023
Регистрация: 18.12.2011
Сообщений: 16,006
Завершенные тесты: 1
29.12.2013, 21:04 #8
Цитата Сообщение от Elize Посмотреть сообщение
какую функцию по этому коду прописывать в .h???
.h тут ни при чем. Нужно создать Win32 проект, а в процессе создания
(3-я стр: параметры проекта) указать, что создается dll
Соответственно int main() не нужна будет.
0
Elize
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 31
29.12.2013, 21:17  [ТС] #9
zss, Мне нужно создать dll, что бы потом в ib expert ее подключить и вывести решение. В script Executive создается, а в sql editor выводит ошибку, что "переполнение в процессе преобразования данных. ошибка преобразования из строки " jvghvk jhgh kjbk"."
0
zss
Модератор
Эксперт С++
6579 / 6141 / 2023
Регистрация: 18.12.2011
Сообщений: 16,006
Завершенные тесты: 1
29.12.2013, 21:26 #10
Цитата Сообщение от Elize Посмотреть сообщение
В script Executive создается, а в sql editor выводит ошибку
Я пользуюсь MS Visual Studio 2008
0
Elize
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 31
29.12.2013, 22:32  [ТС] #11
Создала dll
http://zalil.ru/34876267
В ib expert, в script executive вставила следующее:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
/*Регистрация UDF*/
{$ifexists udf deletes}
DROP external FUNCTION deletes;
commit;
{$endif}
 
DECLARE external FUNCTION deletes
DOUBLE PRECISION, DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
entry_point 'deletes'
module_name 'qwerty';
commit;
в sql editor:
SQL
1
SELECT deletes('abc fhfhffh fhfd',1) FROM rdb$database
В чем ошибка?помогите пожалуйста исправить
0
29.12.2013, 22:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2013, 22:32
Привет! Вот еще темы с ответами:

Удаление пробелов и строки - C++
имеется строка s1 (string) с содержанием &quot;privet kak&quot; нужно в вектор передать сначала privet потом kak, т.е. первым значением является...

Удаление лишних пробелов - C++
Доброго времени суток уважаемые профики С++. Хотелось бы узнать как сделать функцию удаление лишних пробелов? То есть что бы по 1...

Удаление начальных пробелов на С - C++
Программа просит ввести строку символов , если в начале предложения есть пробелы программа удаляет эти пробелы и выводит введенную нами...

Удаление пробелов из строки - C++
Выдает ошибку на картинке, помогите найти проблему, пожалуйста. namespace Differentiation { class Differentiation { ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.