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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
ek1ipse
16 / 19 / 0
Регистрация: 10.02.2011
Сообщений: 157
13.03.2012, 22:08     Дан текст. а) Найти количество слов, начинающихся с буквы б #1
Здравствуйте. Помогите пожалуйста с задачей...

Дан текст. а) Найти количество слов, начинающихся с буквы б; б) Найти количество слов, у которых первый и последний символы совпадают между собой; в) Найти длину самого короткого слова.

Добавлено через 1 час 7 минут
посмотрите кто нить пожалуйста..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2012, 22:08     Дан текст. а) Найти количество слов, начинающихся с буквы б
Посмотрите здесь:

Найти количество слов, начинающихся с заданной буквы С. C++
Найти количество слов, начинающихся на гласные буквы C++
Дана строка содержащая английский текст. Найти количество слов, начинающихся с буквы b C++
C++ Дан текст.Найти количество слов,где две гласные буквы и вывести их на экран.
Дан текст, найти количество слов и количество слов, у которых первый и последний символ совпадают C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
13.03.2012, 22:11     Дан текст. а) Найти количество слов, начинающихся с буквы б #2
ek1ipse, ну чего смотреть, задание простое и из-за этого не интересное. Давайте свои наработки, будем их править и подсказывать что и как дальше делать.
ek1ipse
16 / 19 / 0
Регистрация: 10.02.2011
Сообщений: 157
13.03.2012, 22:27  [ТС]     Дан текст. а) Найти количество слов, начинающихся с буквы б #3
Цитата Сообщение от Gepar Посмотреть сообщение
ek1ipse, ну чего смотреть, задание простое и из-за этого не интересное. Давайте свои наработки, будем их править и подсказывать что и как дальше делать.
совсем в голову ниче не лезет блин..

уснул на этой лекции, теперь страдаю... а завтра сдавать

помогите пожалуйста чем можете..

Добавлено через 10 минут
люди.. не оставляйте погибать..
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
13.03.2012, 22:56     Дан текст. а) Найти количество слов, начинающихся с буквы б #4
2.
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 <string.h>
using namespace std;
#define SIZE 256
#define PUNCT " ,.{}()\n\t;:?!"
 
int main(){
    char text[SIZE];
 char *token = NULL;
int i = 0;
int count = 0;
 
 cout << "Enter a text\n" ;
 cin.getline(text,SIZE);
 cout << "Words" << endl ;
  for(token = strtok(text,PUNCT);token;token = strtok(NULL,PUNCT)){
   if (token[0] == token[(strlen(token) - 1)]){
       cout << token << endl;
   count++;}
   i++;}
  cout << "\nQuantity " << count << endl ;
 system("pause");
    }
ek1ipse
16 / 19 / 0
Регистрация: 10.02.2011
Сообщений: 157
13.03.2012, 23:13  [ТС]     Дан текст. а) Найти количество слов, начинающихся с буквы б #5
спасибо огромное

Добавлено через 4 минуты
а можете сделать что бы слова на букву 'b' считал и самое короткое слово находил
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
13.03.2012, 23:48     Дан текст. а) Найти количество слов, начинающихся с буквы б #6
C99
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdint.h>
#include <stddef.h>
 
int main(void)
{          
   char str[256] = "";    
   printf("string: ");
   scanf("%255[^\n]", str);   
  
   size_t count = 0;
   char** arr_of_tok = NULL;
   const char* delim = " ,.?!;:";
 
   char* ptok = strtok(str, delim);
   while(ptok != NULL)
   {
      arr_of_tok = (char**) realloc(arr_of_tok, ++count * sizeof(char*));
      arr_of_tok[count - 1] = (char*) malloc(strlen(ptok) + 1);
      strcpy(arr_of_tok[count - 1], ptok);
      ptok = strtok(NULL, delim);
   }
 
   const char ch = 'b';
   size_t starts_with_n = 0;
   size_t first_last_eq_n = 0;
   size_t min_tok_len = *str? SIZE_MAX : 0;   
 
   for(size_t i = 0; i < count; ++i)
   {
      size_t curr_tok_len = strlen(arr_of_tok[i]);
 
      if(arr_of_tok[i][0] == ch)
     ++starts_with_n;
      if(arr_of_tok[i][0] == arr_of_tok[i][curr_tok_len - 1])
     ++first_last_eq_n;
      if(curr_tok_len < min_tok_len)
     min_tok_len = curr_tok_len ;
   }
 
   if(arr_of_tok != NULL)
   {
      for(size_t i = 0; i < count; ++i)
         free(arr_of_tok[i]);
      free(arr_of_tok);
   }
 
   printf("starts with '%c': %zu\n"
      "first = last: %zu\n"
      "shortest word: %zu\n", 
      ch, starts_with_n, first_last_eq_n, min_tok_len);
   
   return 0;
}
ek1ipse
16 / 19 / 0
Регистрация: 10.02.2011
Сообщений: 157
14.03.2012, 00:23  [ТС]     Дан текст. а) Найти количество слов, начинающихся с буквы б #7
спасибо.. но что то 29 строка ошибку выдает
ek1ipse
16 / 19 / 0
Регистрация: 10.02.2011
Сообщений: 157
14.03.2012, 12:47  [ТС]     Дан текст. а) Найти количество слов, начинающихся с буквы б #8
посмотрите кто нить пожалуйста.. программа не работает
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
14.03.2012, 13:55     Дан текст. а) Найти количество слов, начинающихся с буквы б #9
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
#include <iostream>
#define SIZE 256
#define PUNCT " ,.{}()\n\t;:?!"
 
int main(){
    char text[SIZE] = "";
    char *token = NULL;
    int i = 0;
    int count[2] = {0};
    int minlen = 0;
    bool loop = true;
    char minword[20] = "";
 
   std::cout << "Enter a text\n" ;
   std::cin.getline(text,SIZE);
  for(token = strtok(text,PUNCT);token;token = strtok(NULL,PUNCT)){
          if (token[0] == token[(strlen(token) - 1)]){ count[0]++;}
          if (token[0] == 'b'){ count[1]++;}
          if (loop) {minlen = strlen(token);strcpy(minword,token);loop = false;} // если одно слово 
          if(strlen(token) < minlen){ minlen = strlen(token); strcpy(minword,token);}
          i++;}
  std::cout << "\nQuantity beg = end  " << count[0]
  << "\nQuantity with first character 'b'  " << count[1]
  << "\nWord   '"<< minword << "' with min lenght " << minlen << std::endl ;
 system("pause");
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2012, 14:49     Дан текст. а) Найти количество слов, начинающихся с буквы б
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
14.03.2012, 14:49     Дан текст. а) Найти количество слов, начинающихся с буквы б #10
Цитата Сообщение от ek1ipse Посмотреть сообщение
спасибо.. но что то 29 строка ошибку выдает
В программе используются возможности С99, что я собственно и указал в своём предыдущем посте...
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
#include <string.h>
#include <stdlib.h>
#include <stddef.h>
 
typedef unsigned long ulong;
 
int main(void)
{
   const char ch = 'b';
   const char* delim = " ,.?!;:";
 
   char* ptok;  
   char str[256] = "";  
 
   size_t curr_tok_len, min_tok_len;
   size_t starts_with_n, first_last_eq_n;
      
   printf("string: ");
   scanf("%255[^\n]", str);  
 
   starts_with_n = 0;
   first_last_eq_n = 0; 
   min_tok_len = *str? -1 : 0;
  
   ptok = strtok(str, delim);
 
   while(ptok != NULL)
   {
      curr_tok_len = strlen(ptok);
 
      if(ptok[0] == ch)
         ++starts_with_n;
      if(ptok[0] == ptok[curr_tok_len - 1])
         ++first_last_eq_n;
      if(curr_tok_len < min_tok_len)
         min_tok_len = curr_tok_len;
 
      ptok = strtok(NULL, delim);
   }     
 
   printf("starts with '%c': %lu\n"
          "first = last: %lu\n"
          "shortest word: %lu\n", 
          ch, (ulong)starts_with_n, (ulong)first_last_eq_n, (ulong)min_tok_len);
   
   return 0;
}
Yandex
Объявления
14.03.2012, 14:49     Дан текст. а) Найти количество слов, начинающихся с буквы б
Ответ Создать тему
Опции темы

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