Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » подскажите алгоритм: убрать пробелы из строки.

Страниц (2): [1] 2 »
 

1. forzub - 28 Июня, 2014 - 05:50:04 - перейти к сообщению
Добрый день. подскажите, как средствами кибера убрать из строки все символы, кроме цифр и алфавита (пробелы, табуляторы и др. случайно попавшие)
2. Kibor - 28 Июня, 2014 - 12:14:31 - перейти к сообщению
regexreplace(-1, #Text, Text, " ", "");
Регулярные выражения

или устравшее:


 Цитата:
string str="Убрать все ! и пробелы !! и еще !! и еще+!+";
messagebox (str);

char a[200];

strcpy(#a[0], str);
int siz=size(#a[0]);

str="";
for (int q=0; q {
if (a[q]!='!' && a[q]!=' ')str=str+a[q];
}

messagebox (str);
3. forzub - 28 Июня, 2014 - 13:54:14 - перейти к сообщению
 Kibor пишет:
 Цитата:
string str="Убрать все ! и пробелы !! и еще !! и еще+!+";
messagebox (str);

char a[200];

strcpy(#a[0], str);
int siz=size(#a[0]);

str="";
for (int q=0; q<siz; q++)
{
if (a[q]!='!' && a[q]!=' 'Подмигиваниеstr=str+a[q];
}

messagebox (str);


А как обозначить символ "табуляция"?
(Добавление)
может попробовать как-то через hex код? есть такое обозначение переменных?
4. HACMOPK - 28 Июня, 2014 - 15:31:29 - перейти к сообщению
5. forzub - 28 Июня, 2014 - 15:54:33 - перейти к сообщению
 HACMOPK пишет:


и как мне их применить в виде переменой типа char?
6. Kibor - 28 Июня, 2014 - 15:56:28 - перейти к сообщению
 Цитата:
int n=0;
a: for (n=0; n<255; n++)
{
if (getkeystate(n)==1)messagebox (n);
}
goto a;


Запустите. Этот скриптик покажет все коды во время нажатия.
TAB = 9

Но код клавиши и символа не одно и то же...
К примеру код символов маленького регистра букв анг идут от 69 - 90.
большого 97 - 122.

Проверку чисто букв так можно сделать
 Цитата:
string str="$We 12345 ##()*!lco %%m^$e#^&";
messagebox (str);

char a[200];

strcpy(#a[0], str);
int siz=size(#a[0]);

str="";
for (int q=0; q<siz; q++)
{
if ((formatci(a[q])>64 && formatci(a[q])<91) || (formatci(a[q])>96 && formatci(a[q])<123))str=str+a[q];
}

messagebox (str);

С цифрами так тоже...
7. forzub - 29 Июня, 2014 - 03:35:16 - перейти к сообщению
Спасибо большое за ответ, мне он существенно сэкономил листинг. Я хочу уточнить следующее:

если у меня в строке присутствуют нежелательные символы табуляции, как мне от них избавиться? пока, получается единственный выход это через сравнение каждого char-a со списком "разрешенных символов".

есть ли возможность указать что-то типа:
CODE:

string ss="где-то тут вместо пробела стоит табуляция";
char a[200];
strcpy(#a[0],ss);
int sz=size(#a[0]);
if (int q; q<sz; q++ ) {
if (a[q]!=/*на этом месте должен быть символ табуляции*/)
{/*к дьяволу символ табуляции*/}
}

?
(Добавление)
Ага, кажется начинаю понимать, наверное через функцию:
CODE:

formatci(a[q])==9


Улыбка правильно?
8. Kibor - 29 Июня, 2014 - 03:50:46 - перейти к сообщению
 Kibor пишет:
TAB = 9


CODE:
char ee=formatic(9);
string qw="gg"+ee+"ww";
messagebox (qw);

char a[200];

strcpy(#a[0], qw);
int siz=size(#a[0]);

qw="";
for (int q=0; q<siz; q++)
{
if (formatci(a[q])!=9)qw=qw+a[q];
}

messagebox (qw);
9. forzub - 29 Июня, 2014 - 04:15:36 - перейти к сообщению
теперь все понятно Улыбка спасибо Улыбка
10. konctantin777 - 16 Ноября, 2020 - 09:50:16 - перейти к сообщению
[quote=Kibor][/quote]
А как удалить и пробелы и всё кроме букв ?
regexreplace(-1, #text_KIB, text_KIB, "[^а-я]", ""); Так ?
(Добавление)
 konctantin777 пишет:
 Kibor пишет:

А как удалить и пробелы и всё кроме букв ?
regexreplace(-1, #text_KIB, text_KIB, "[^а-я]", ""); Так ?



Не работает. Подскажите как оставить только буквы ?

Powered by ExBB FM 1.0 Final