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

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

Войти
Регистрация
Восстановить пароль
 
Nasty zzz
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 39
#1

строка и слово - C++

11.12.2011, 16:20. Просмотров 292. Ответов 6
Метки нет (Все метки)

дана строка содержащий текст.
подсчитать количество слов,
начинающихся и заканчивающихся на одну и туже букву

на тп структуру представляю и наней смог бы сделать но на С++
не имею предсавления
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2011, 16:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос строка и слово (C++):

Дана строка, заменить слово min на слово max - C++
#include <stdio.h> int main() { int n = 81; char str; int i; gets(str);

Дана строка, в котором есть слово "да" или слово "нет". Если в нем есть слово "нет", то удалить его - C++
Дана строка, в котором есть слово "да" или слово "нет". Если в нем есть слово "нет", то удалить его или получить строку в слова "да" и...

Строка содержит слово: - C++
Строка содержит слово: а) дописать к его концу наименьшую последовательность символов так, чтобы слово стало палиндромом; б)...

Проверить содержит ли строка введенное слово - C++
Ввести строку, состоящую из нескольких слов, разделенных одним или несколькими пробелами. Проверить содержит ли строка введенное слово.

Вывести слово, с которого начинается строка - C++
Пользователь вводит строку. Вывести слово, с которого она начинается.

Строка, слово с макс. числом символов - C++
В строке(не превышает 300 символов), введенной с клавиатуры найти и вывести слово(если таких несколько, то последнее) с максимальным числом...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nasty zzz
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 39
19.12.2011, 17:03  [ТС] #2
и не кто не умет решать эту задачу
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.12.2011, 17:06 #3
Воспользуйтесь strtok.

Добавлено через 29 секунд
Остальные все уже тривиально.
absokolov
29 / 29 / 1
Регистрация: 10.05.2011
Сообщений: 120
19.12.2011, 17:28 #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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <vector>
using namespace std;
 
struct lett
{
    char w;
    int count;
};
 
lett * Find(char l, vector < lett > & p);
 
int main()
{
   vector < lett > letters;   
   vector < char * > p;
   char * iter;
   char * tmp = 0;
   lett * lett_p;
   char str[] = "one two three four string ";
 
   tmp = strtok(str, " ");
 
   while ( tmp != NULL )
   {
       p.push_back(tmp);
       tmp = strtok(NULL, " ");
   }
 
   for (int i = 0; i < p.size(); i++)
   {
      iter = p[i];
      if ((lett_p = Find(*iter, letters)) != NULL)
      {
          ++lett_p->count;
      }
      else
      {
           lett n;
           n.count = 1;
           n.w     = *iter;
           letters.push_back(n);
      }
   }
 
   int count = letters.size();
 
   for (int i = 0; i < count; i++)
   {
      lett_p = &letters[i];
      cout<<"Letter: "<<lett_p->w<<"    Count: "<<lett_p->count<<endl;
   }
 
    return 0;
}
 
lett * Find(char l, vector < lett > & p)
{
    int len = p.size();
    lett * tmp;
 
    for (int i = 0; i < len; i++)
    {
         tmp = &p[i];
         if (tmp->w == l)
             return tmp;
    }
 
    return NULL;
}
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.12.2011, 17:44 #5
Цитата Сообщение от absokolov Посмотреть сообщение
Что-то типа такого:
Зачем столько строчек кода, когда там только один цикл
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define DELIM " -.,/\()"
 
int main(void)
{
    char buf[BUFSIZ];
    size_t count = 0;
    char *t;
 
    fgets (buf, BUFSIZ, stdin);
 
    t = strtok (buf, DELIM);
    while ( t )
    {
        if ( t[0] == t[strlen(t) - 1])
            ++count;
        t = strtok (NULL, DELIM);
    }
 
    printf (" Count = %d \n ", count);
 
    system ("pause");
    return 0;
}
Добавлено через 59 секунд
Строку делителей под себя переделайте.
absokolov
29 / 29 / 1
Регистрация: 10.05.2011
Сообщений: 120
19.12.2011, 17:56 #6
плин!
начинающихся и заканчивающихся на одну и туже букву
А я чет думал что каждую букву нужно считать.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,609
19.12.2011, 18:02 #7
Цитата Сообщение от go Посмотреть сообщение
Остальные все уже тривиально.
То же в извращённой форме
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
    
int cnt_same(char * s, const char * DELIM) { 
    char * p = strtok(s, DELIM);
    return ( p ) ? ( *p == *(p + strlen(p) - 1) ) + cnt_same(NULL, DELIM) : 0;
}
 
#define DELIM " \t\n"
    
int main(void){
    char buf[BUFSIZ], * p;
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        printf("%d words starts and ends with same letter.\n", cnt_same(buf, DELIM));
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2011, 18:02
Привет! Вот еще темы с ответами:

Строка: удалить последнее слово из каждого предложения. - C++
Дан текст. Нужно удалить последнее слово из каждого предложения. Я делаю так. По порядку пребераю все элементы пока не встретиться...

Символьная строка. Поменять местами второе слово с передпоследним - C++
Помогите решить. С клавиатуры ввести предложение. Поменять местами второе слово з передпоследним. Напечатать результат изменений.

Есть строка. Нужно в строке найти слово и его подменить - C++
Есть строка. Нужно в строке найти слово и его подменить. Например: &quot;cyberforum - good forum.&quot; Найти &quot;good&quot; и заменить на...

Дана строка, поменять первое слово в строке с последним словом - C++
Это код на Паскале. есть ли аналогии copy и delete в c++? Подскажите как лучше написать код на с++ program lab6_2; var...


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

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

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