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

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

Восстановить пароль Регистрация
 
Дархан
 Аватар для Дархан
21 / 21 / 1
Регистрация: 07.10.2012
Сообщений: 93
10.12.2012, 13:54     Количество слов, начинающихся и заканчивающихся одной буквой #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
36
37
38
39
#include <conio.h>
#include <string.h>
#include <iostream.h>
#pragma argsused
int main()
{ char s[100];
  int i,k=0,n=0,a[100],j=0;
  cin.getline(s,sizeof(s)-1);
  for (i=0;i<strlen(s);i++)
  {
  if (s[i]!=' ')
  {
  if (s[0]==s[strlen(s)-1])
  n=1;
  }
  else
  {
  if (s[i]==' ')
  {
  a[j]=i;
  j++;
  k++;
  }
  else
  {
  a[j]=a[j];
  }
  for (j=1;j<k-1;j++)
  if (s[a[j-1]+1]==s[a[j]-1])
  n++;
  if (s[0]==s[a[0]-1])
  n++;
  if (s[a[k-1]+1]==s[strlen(s)-1])
  n++;
  }
  }
  cout<<"\n"<<n;
 getch();
}
По условию надо найти кол-во слов начинающихся и заканчивающихся одной буквой. Вот мой код. Для 1 и 2 слов работает, а дальше то правильно то неправильно. Помогите исправить(нужно решить без указателя)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 13:54     Количество слов, начинающихся и заканчивающихся одной буквой
Посмотрите здесь:

Определить количество слов, заканчивающихся буквой а C++
C++ Дана строка символов. Найти количество слов начинающихся на A и заканчивающихся на D
посчитать количество слов, начинающихся согласной и заканчивающихся буквой а C++
Подсчитать количество слов в тексте, начинающихся и заканчивающихся одной и той же буквой C++
Определить количество слов в каждой строке , начинающихся на ‘А’ и заканчивающихся на “ и” C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
10.12.2012, 15:32     Количество слов, начинающихся и заканчивающихся одной буквой #2
Могу предложить только STL решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
#include <iterator>
#include <sstream>
 
int main()
{
    setlocale (LC_ALL, "Russian");
    std::string str = "Hello world helh wow poi ioii";
    std::istringstream is(str);
    std::cout<<"Количество слов, начинающихся и заканчивающихся одной буквой: "
        <<std::count_if(std::istream_iterator<std::string>(is),
        std::istream_iterator<std::string>(),
        [](const std::string& s){return s.front() == s.back();}
        )<<std::endl;
    system("pause");
    return 0;
}
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
10.12.2012, 15:41     Количество слов, начинающихся и заканчивающихся одной буквой #3
Могу предложить решение на С:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void)
{
    char str[BUFSIZ];
    size_t count = 0;
    char *p;
    fgets(str, BUFSIZ, stdin);
    for (p = strtok(str, " \n\t"); p; p = strtok(NULL, " \n\t"))
        if (*p == p[strlen(p) - 1])
        {
            puts(p);
            count++;
        }
    printf("Count: %u\n", count);
    return 0;
}
Дархан
 Аватар для Дархан
21 / 21 / 1
Регистрация: 07.10.2012
Сообщений: 93
11.12.2012, 08:24  [ТС]     Количество слов, начинающихся и заканчивающихся одной буквой #4
Цитата Сообщение от Пaтрик Посмотреть сообщение
Могу предложить решение на С:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void)
{
    char str[BUFSIZ];
    size_t count = 0;
    char *p;
    fgets(str, BUFSIZ, stdin);
    for (p = strtok(str, " \n\t"); p; p = strtok(NULL, " \n\t"))
        if (*p == p[strlen(p) - 1])
        {
            puts(p);
            count++;
        }
    printf("Count: %u\n", count);
    return 0;
}
Спасибо, конечно, но я просил без указателя
Yandex
Объявления
11.12.2012, 08:24     Количество слов, начинающихся и заканчивающихся одной буквой
Ответ Создать тему
Опции темы

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