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

Строка(указатели) - C++

Восстановить пароль Регистрация
 
ishushii
1 / 1 / 0
Регистрация: 20.01.2012
Сообщений: 41
27.01.2012, 22:43     Строка(указатели) #1
Написать программу, которая запрашивает у пользователя ввод строки, состоящей из строчных букв латинского алфавита. Программа подсчитывает, сколько раз в строке встречается каждая из строчных букв латинского алфавита.


Решить с помощью указателей.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
27.01.2012, 22:51     Строка(указатели) #2
Цитата Сообщение от ishushii Посмотреть сообщение
Написать программу, которая запрашивает у пользователя ввод строки, состоящей из строчных букв латинского алфавита. Программа подсчитывает, сколько раз в строке встречается каждая из строчных букв латинского алфавита.
Решить с помощью указателей.
Ну и чего не понятно? Есть наработки?
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
27.01.2012, 22:57     Строка(указатели) #3
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
#include <map>;
#include<iostream>
using std::map;
using std::cout;
using std::cin;
 
 
 
int main()
{
 
 
char buf [100];
 
 
cout<<"Input string "<<"\n";
cout.flush();
cin.getline(buf,100,'\n');
 
map<char,int> m;
map<char,int>::iterator IT;
 
int lent  = strlen(buf); //buf - указатель на начало строки
 
for(int i = 0;i<lent; i++)
{
    m[buf[i]]++; //считаем вхождения букв
};
 
 
IT = m.begin();
 
while(IT!=m.end())
{
    cout<<IT->first<<" "<<IT->second<<"\n"; //выводим парой - буква - сколько раз встретилась
    ++IT;
}
 
 
return 0;
}
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
28.01.2012, 02:44     Строка(указатели) #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
#include <stdio.h>
#include <string.h>
#define MAX_LINE_SIZE 2048
#define NUMBER_OF_LETTERS ('z' - 'a' + 1)
 
int main(int argc, char *argv[]) {
  char line[MAX_LINE_SIZE];
  int counters[NUMBER_OF_LETTERS];
  fgets(line, MAX_LINE_SIZE, stdin);
  memset(counters, 0, sizeof(*counters) * NUMBER_OF_LETTERS);
 
  char *c = line;
  for (; *c != '\0'; ++c)
    if(*c >= 'a' && *c <= 'z')
      ++counters[*c - 'a'];
 
 
  int i;
  for (i = 0; i < NUMBER_OF_LETTERS; ++i)
    printf("%c: %02d\n", 'a' + i, counters[i]);
 
  return 0;
};
Yandex
Объявления
28.01.2012, 02:44     Строка(указатели)
Ответ Создать тему
Опции темы

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