Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.80
I am the Law
0 / 0 / 0
Регистрация: 28.02.2010
Сообщений: 3
#1

Удалить из строки все слова, которые начинаются на заглавную букву - C++

28.02.2010, 18:30. Просмотров 5874. Ответов 6
Метки нет (Все метки)

слова в строке могут разделяться пробелами и знаками препинания,в конце "." необходимо удалить из строки все слова,которые начинаются на заглавную букву,прошу очень помочь,именно с удалением слова по харастеристике...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2010, 18:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить из строки все слова, которые начинаются на заглавную букву (C++):

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

Удалить все слова в тексте, которые начинаются и заканчиваются на одну и ту же букву - C++
Пропустил несколько занятий по дисциплине, задали написать программу с использованием строк и библиотекой <string.h> Пытался сам...

Вывести из файла все слова, которые начинаются на заданную букву - C++
Написать программу которая читает англ. текст с файла и выводит на экран все слова что начинаются на а.

Вывести из файла все слова, которые начинаются на гласную букву - C++
Вивести из файла все слова котрые начинаются на гласную букву. Слова записаны на английском. ООООЧень нужна помощь!

Вывести все слова, которые начинаются и заканчиваются на одну букву - C++
Задан текст заканчивающийся точкой. Вывести все слова, которые начинаются и заканчиваются на одну букву.

Вывести только те слова из строки, которые начинаются и оканчиваются на заданную букву - C++
Вывести только те слова сообщения, которые начинаются и оканчиваются на заданную букву. Где у меня проблема? #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
breate
56 / 56 / 2
Регистрация: 23.10.2009
Сообщений: 250
28.02.2010, 18:34 #2
тебе решить или подсказать?

Добавлено через 42 секунды
если второе давай полное условие
I am the Law
0 / 0 / 0
Регистрация: 28.02.2010
Сообщений: 3
28.02.2010, 18:44  [ТС] #3
Цитата Сообщение от breate Посмотреть сообщение
тебе решить или подсказать?

Добавлено через 42 секунды
если второе давай полное условие
решить
существует строка,в которой слова могут разделяться пробелами и знаками препинания,необходимо удалить из строки все слова,которые начинаются на заглавную букву(вроде полное условие)
Вот задача наподобие,в ней из аналогичной строки выводятся все слова,которые начинаются и заканчиваются 1-й буквой.(в коде возможны мелкие ошибки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str,slovo;
int s=0;
string::size_type k=0,pos=0;
string razdel=",.:;!?";
cout<<'enter string'<<endl;
getline(cin,str);
k=str.find_first_of(razdel,pos);
while(k!=string::npos)
{slovo=str.substr(pos,k-pos);
if (ispunct(str[k])) pos=k+2;
else pos=k+1;
if(slovo[0]==slovo[slovo.length()-1]) s++;
k=str.find_first_of(razdel,pos);
}
cout<<str<<endl;
cout<<s<<endl;
return 0;}
breate
56 / 56 / 2
Регистрация: 23.10.2009
Сообщений: 250
28.02.2010, 19:51 #4
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
using namespace std;
 
void main(){
char rax[]=".,;: ";
char *buf=new char[256];
cin.getline(buf,256);
char *p=buf;
while(*p)
{
    if(*p>='A'&&*p<='Z'){
        *p=' ';
        while(*p)
        {
        bool stop=false;
        p++;
        char *e=&rax[0];
        while(*e)
        {
        if(*p==*e) stop=true;
        e++;
        }
        if(!(*p))break;
        *p=' ';
        if(stop) break;
        }
    }
    else{
        while(*p)
        {
            bool stop=false;
                        char *e=&rax[0];
            while(*e)
                {
                    if(*p==*e) {*p=' ';stop=true;};
                e++;
                }
            p++;
                if(stop) break;
        }}
        //p++;
}
char *buf1=new char [256];
char *d=buf1;
p=&buf[0];
p++;
bool b;
while(*p){
    if((*(p))!=' '){*d=*p;d++;b=true;}
    if(*p==' '&&b==true){*d=' ';d++;b=false;}
    p++;
 
}
*d=0;
cout<<buf1<<endl;
delete [] buf1;
delete [] buf;
}
Добавлено через 1 минуту
собрано MSVS2008,Windows 7, дашь почту пришлю исходник
I am the Law
0 / 0 / 0
Регистрация: 28.02.2010
Сообщений: 3
28.02.2010, 20:00  [ТС] #5
cпасиб,lemmy91@mail.ru
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
28.02.2010, 20:33 #6
Тестируй, неудачные результаты мне сюда. С кирилицей может и не работать, сразу говорю, используемые функции её не очень любят.

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 <windows.h>
#include <stdio.h>
 
#include <ctype.h>
 
int main (){
 char stroka []= "aa WERERERR JKJKJKJ, HJHJHJHT kjhjhjjh, zjhjhjhjjhj  UUU,TTT fff,fff .";
 
 char fff;
 
 //Это строка-результат, её адрес сохраняется вобъявленной ниже переменной.
 char* rez= new char [strlen(stroka)];
 char* rez_1= rez;
 
 int i= 0;
 
 while (stroka[i]!='.') {
  if (isupper(stroka[i])) {
   while ( !ispunct(stroka[i]) && !isspace(stroka[i])){
    i++;
   }
  }
  *rez++= stroka [i++];
 }
 *rez++= '.';
 *rez= 0;
 
 //Вывод
 printf ("%s\n", rez_1);
 getchar ();
  return 0;
}
mikykonst
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 70
02.05.2015, 22:38 #7
А как сделать поиск заглавной буквы в середине слова?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2015, 22:38
Привет! Вот еще темы с ответами:

Работа из строками. Удалить все слова, которые начинаются с согласных букв - C++
Здравствуйте! Помогите решить задачу: пользователь вводит строку. Нужно ее записать в обратном порядке, посчитать количество чисел в...

Удалить из текста все слова, которые начинаются с букв, заданных в строке запроса - C++
Пытался сам написать,но выдает ошибку.Как правильно должен выглядеть код?Заранее спасибо. #include&lt;iostream&gt; #include&lt;stdio.h&gt; ...

В тексте выделить все слова, которые начинаются на букву "к" - C++
В тексте выделить все слова, которые начинаются на букву &quot;к&quot;

Напечатать все слова строки, которые начинаются цифрой - C++
Привет. Нужна помощь: Задана строка. Необходимо напечатать все слова строки, которые начинаются цифрой и подсчитать их количество.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.05.2015, 22:38
Ответ Создать тему
Опции темы

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