IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> работы со строками в с++ помогите плз.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


народ помогите плз. завтра сдавать хотя бы одну из 3-х если вам не трудно...

1 ) ввести строку, в которую могут входить только цифры и буквы. Распечатать только те группы букв, в которых буква встречается не менее двух раз. ( группа букв - последовательность букв, обрамленная цифрами.

2) Распечатать введенное предложение, удалив из него слова, которые состоят менее чем из 3-х букв.

3) Проверить имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок.


Помогите кто может...заранее спс.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


3) заводим счетчик, равный изначально 0. Идем слева направо по строке. Если встретили символ '(', увеличиваем счетчик на 1. Если ')' - уменьшаем. После каждого изменения проверяем, что счетчик >= 0 (если это не так, это значит, что найдена закрывающая скобка, для которой нет пары). В конце проверяем, что счетчик = 0.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


aaa (char *str) {int a; int i;
while (*str[i++]!=NULL )
{
if (*str[i]=='(')
{while (*str[i]!=')')
}
if (*str[i]==null)
a=1; break; }}}
return (a);
}


я делаю так что-то не работает со скобками

search (char *str) {
int n,i,k,a,c;
while (*str[i++]!=null )
switch (*str[i])
{ case '1','2'..'9',0:n=1; default n=0}
if (n==1) {
k=i;
n=0;
while ((ischar (*str [k++])) {
if (*str[k]=="A" ) c++;
n++;
if (c>2) for (a=i; a<=i+c;a++)
printf("%s, *str[a]);
i+=n;}
printf(" "); return 0;
}

с буквой а я делаю так тоже не пашет не наю уже помогите а
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






А так:
int aaa (char *str) {

int count = 0;
char *p;
for(p = str; *p; p++)
if(*p == '(') count += 1;
else if(*p == ')') {
count -= 1;
if(count < 0) return 0;
}

return (count == 0) ? 1 : 0;
}
?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Что понимается под балансом? вот такая строчка считается сбалансированной: ")))(((" ? Если количественно считать, то да... а по сути - нет.

Сообщение отредактировано: мисс_граффити -


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Извините что перебиваю smile.gif

По поводу первой части первого вопроса,
Цитата
ввести строку, в которую могут входить только цифры и буквы

ты это имел в виду ?

# include <iostream.h>
# include <conio.h>

char *FormatInput()
{
char ch, *s = new char[255];
int i = 0;

do
{
ch = getch();

if (((int)ch != 13) && ((isdigit(ch)) || (isalpha(ch))))
{
cout << ch;
s[i++] = ch;
}

} while ((int)ch != 13);

s[i] = '\0';

return s;
}
int main(void)
{
char *s = FormatInput();

cout << endl << s;

return 0;
}


Цитата
в которых буква встречается не менее двух раз


Вот это не понял, какая буква, кажда ? (3aabbccc1) ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


ввести строчку в которую могут входить только цифры и буквы. Распечатать те группы букв в которых буква А встречается не менее 2 раз. (группа букв - последовательность букв, обрамленная цифрами)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






№2:
#include <stdio.h>
#include <string.h>

int main() {

const char *between = " .,:!?"; /* Можно добавить еще разделителей между словами */
char s[100], *p;

puts("sentence: ");
gets(s);

p = strtok(s, between);
while(p) {
if(strlen(p) < 3) puts(p);
p = strtok(NULL, between);
}

return 0;
}


№1 - аналогично №2:
#include <stdio.h>
#include <string.h>

int main() {

const char *between = "0123456789";
char s[100], *p, *pp;
int count;

puts("sentence: ");
gets(s);

p = strtok(s, between);
while(p) {
for(count = 0, pp = p; *pp; pp++)
if(*pp == 'A') count += 1;

if(count > 2) puts(p);
p = strtok(NULL, between);
}

return 0;
}
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 22.09.2020 16:08
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name