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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Gans5
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 9
17.10.2010, 12:13     Найти количество слов, начинающихся с заданной буквы С. #1
Дана строка символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелы внутри себя, будем называть словами. Найти количество слов, начинающихся с заданной буквы С.


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
//---------------------------------------------------------------------------
#pragma hdrstop
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include<windows.h>
 
        ostream& operator<<(ostream&out,const char*str)
        {
        char s[256];
        CharToOem(str,s);
        for(int i=0;s[i]!=0;i++)
            out<<s[i];
        return out;
        }
 
//---------------------------------------------------------------------------
 
void main()
{
char s[1000];
 
  cout << "Введите строку: ";
  gets(s);
  int a,i,b;
a=0;
b=0;
for (i=0;i<strlen(s)-1;i++)
 if ((s[i]==' ') && (s[i+1]!=' '))
  a=a+1;
if (s[0]!=' ')
    a=a+1;
cout<<"В веденной строке "<<a<<" слов"<<endl;
getch();
}

Что дальше делать, какое условие надо поставить что бы находились все слова начинаюшиеся на заданую букву "С"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2010, 12:13     Найти количество слов, начинающихся с заданной буквы С.
Посмотрите здесь:

Подсчитать количество слов, начинающихся с буквы “a” C++
Найти количество слов, начинающихся на гласные буквы C++
Дана строка содержащая английский текст. Найти количество слов, начинающихся с буквы b C++
C++ Дан текст. а) Найти количество слов, начинающихся с буквы б
Подсчитать количество слов, начинающихся с буквы 'а' C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
17.10.2010, 12:30     Найти количество слов, начинающихся с заданной буквы С. #2
Воспользуйтесь функцией strtok.
Driver_09
 Аватар для Driver_09
15 / 15 / 0
Регистрация: 03.05.2010
Сообщений: 158
17.10.2010, 12:34     Найти количество слов, начинающихся с заданной буквы С. #3
ну саму программу не смотрел на правильность, да и не это важно.
Я думаю нужно написать нечто подобное:
C++
1
2
3
for (i=0; i<s; i++)
 if(s[0]=='C')
  ...
То есть насчёт s я не уверен. но условие думаю должно быть таким.
Многоточие - это я имел в виду вывод на экран
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.10.2010, 12:55     Найти количество слов, начинающихся с заданной буквы С. #4
Gans5, для английских букв
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string.h>
#include <ctype.h>
 
int count_a(const char * s, char c){
  char * buf, * p;
  int cnt;
 
  if ( ( buf = strdup(s) ) == NULL )
    return -1;
  c = toupper(c);
  cnt = 0;
  for ( p = strtok(buf, " "); p; p = strtok(NULL, " ") )
   if ( toupper(*p) == c )
      ++cnt;
  free(buf);
  return cnt;
Gans5
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 9
25.10.2010, 20:51  [ТС]     Найти количество слов, начинающихся с заданной буквы С. #5
Цитата Сообщение от easybudda Посмотреть сообщение
Gans5, для английских букв
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string.h>
#include <ctype.h>
 
int count_a(const char * s, char c){
  char * buf, * p;
  int cnt;
 
  if ( ( buf = strdup(s) ) == NULL )
    return -1;
  c = toupper(c);
  cnt = 0;
  for ( p = strtok(buf, " "); p; p = strtok(NULL, " ") )
   if ( toupper(*p) == c )
      ++cnt;
  free(buf);
  return cnt;

Что-то она у меня не запускается

...

Я до сих пор не могу сделать эту программу, strtok не понял как работает и как её использовать
NiTan
Покинул форум
3144 / 1326 / 50
Регистрация: 29.01.2010
Сообщений: 2,888
25.10.2010, 21:03     Найти количество слов, начинающихся с заданной буквы С. #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
//---------------------------------------------------------------------------
 
#pragma hdrstop
 #include <iostream.h>
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
 
char st[1000];
cout<<"Vvedite stroku: ";
cin>>st;
      int count;
 for(int i=0;i<strlen(st);i++)
 {
  if( (st[i]==' ') && (st[i]=='C') || ( (i==0) && (st[i]=='C')))count++;
 }
 
 cout<<"\nKolichestvo slov s C"<<count<<endl;
 system("pause");
        return 0;
}
//---------------------------------------------------------------------------
Unforgiven_00
60 / 60 / 2
Регистрация: 12.10.2010
Сообщений: 129
25.10.2010, 22:12     Найти количество слов, начинающихся с заданной буквы С. #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream> 
#include <fstream>
#include <vector>
#include <string>
using namespace std;
int main()
{
    ifstream in("file.txt");
    vector<string> v;
    while(!in.eof())
    {
        string tmp;
        in >> tmp;
        v.push_back(tmp);
    }
    int count = 0;
    for(unsigned i=0; i<v.size(); i++)
        if(v[i][0] == 'c' || v[i][0] == 'C')
            count++;
    cout << count << endl;
    system("pause");
    return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.10.2010, 23:26     Найти количество слов, начинающихся с заданной буквы С. #8
Цитата Сообщение от Папа Карло Посмотреть сообщение
if( (st[i]==' ') && (st[i]=='C')...
Так чему эта st[i] должна ровняться-то? Такое условие никогда не выполнится.
крольчиха
 Аватар для крольчиха
1 / 1 / 0
Регистрация: 21.01.2010
Сообщений: 19
26.10.2010, 14:22     Найти количество слов, начинающихся с заданной буквы С. #9
if( (st[i]==' ') && (st[i+1]=='C')..так наверно правильней
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2010, 21:06     Найти количество слов, начинающихся с заданной буквы С.
Еще ссылки по теме:

Найти количество слов в строке, начищающихся с заданной буквы C++
C++ Найти количество слов, начинающихся с буквы b
Найти в массиве символов количество слов, начинающихся с буквы b C++

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

Или воспользуйтесь поиском по форуму:
Gans5
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 9
26.10.2010, 21:06  [ТС]     Найти количество слов, начинающихся с заданной буквы С. #10
Цитата Сообщение от Unforgiven_00 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream> 
#include <fstream>
#include <vector>
#include <string>
using namespace std;
int main()
{
    ifstream in("file.txt");
    vector<string> v;
    while(!in.eof())
    {
        string tmp;
        in >> tmp;
        v.push_back(tmp);
    }
    int count = 0;
    for(unsigned i=0; i<v.size(); i++)
        if(v[i][0] == 'c' || v[i][0] == 'C')
            count++;
    cout << count << endl;
    system("pause");
    return 0;
}
Я создал файл "file.txt" пишу туда текст по заданию например "Привет как дела саша слышь слушаю тебя"

Выводит 0
хотя должно быть 3



Добавлено через 7 минут
Цитата Сообщение от easybudda Посмотреть сообщение
Так чему эта st[i] должна ровняться-то? Такое условие никогда не выполнится.
Цитата Сообщение от крольчиха Посмотреть сообщение
if( (st[i]==' ') && (st[i+1]=='C')..так наверно правильней

Чет вроде не так и не так не работает, показывает постоянно "1"

Добавлено через 12 минут
Че может попробуем ещё как нибуть ещё?


Как можно строку разбить на слова и каждое слово занести в массив ("шла саша по шоссе и сосала сушку" - "шла", "саша", "по", "шоссе", "и", "сосала", "сушку"), а потом проверить каждое слово начинается ли на "с" или нет... я просто только начинаю изучать этот язык и ещё не во всех тонкостях разобрался что да как, а задания в универе задают такие что голову сломаешь, темболее на заочном когда сам все изучаешь....

вообще и вобщем выручайче...
Yandex
Объявления
26.10.2010, 21:06     Найти количество слов, начинающихся с заданной буквы С.
Ответ Создать тему
Опции темы

Текущее время: 02:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru