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

Символьные массивы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
22.10.2010, 19:19     Символьные массивы #1
Ввести свою Фамилию, имя и Отчество, как одно текстовое поле. Определить длину и количество букв "а" в нем. Решить задачу одним из способов:
1) рассматривая введенный текст, как массив символов.
2) используя функцию из библиотеки string.h

Задача: Начинается ли хотя бы одно слово на букву "М"

 Комментарий модератора 
Дублирование тем запрещено правилами форума (п. 3.4).
Не плодите одинаковых тем.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2010, 19:19     Символьные массивы
Посмотрите здесь:

символьные строки C++
Двумерные массивы (+символьные) C++
Символьные массивы и их друзья C++
Строковые переменные (символьные массивы) C++
Символьные массивы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.10.2010, 19:31     Символьные массивы #2
Цитата Сообщение от Barca Посмотреть сообщение
Ввести свою Фамилию, имя и Отчество, как одно текстовое поле. Определить длину и количество букв "а" в нем.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 
int main()
{
    const int n = 256;
    char m[n];
    std::cin.getline(m, n);
    int count = 0;
    for(int i = 0; i < n; i++)
    {
            if(m[i] == 'a')
                 count++;
    }    
    std::cout << count << ' ' << strlen(m);
    std::cin.get();   
    std::cin.get();  
}
Так ?
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
22.10.2010, 19:45  [ТС]     Символьные массивы #3
Спасибо но можна как то без вот етого cin.getline і коменти к каждой строке и что мі делаем если можете, а вот етот пункт Начинается ли хотя бы одно слово на букву "М"
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.10.2010, 19:47     Символьные массивы #4
Цитата Сообщение от Barca Посмотреть сообщение
Спасибо но можна как то без вот етого cin.getline
А почему ето вас смущяет ?
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
22.10.2010, 20:02  [ТС]     Символьные массивы #5
просто еще не учили, а преподователь будет спрашывать что ето такое....

Добавлено через 4 минуты
и ето что strlen?

Добавлено через 14 секунд
на что можна заменить попроще?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.10.2010, 20:06     Символьные массивы #6
Цитата Сообщение от Barca Посмотреть сообщение
и ето что strlen?
strlen
Цитата Сообщение от Barca Посмотреть сообщение
на что можна заменить попроще?
Если чесно то сам не знаю,ждите может люди по-умнее подскажут.
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
22.10.2010, 20:12  [ТС]     Символьные массивы #7
Можна еще к каждой строке комент пожалуста и все!!!=))))

Добавлено через 3 минуты
Цитата Сообщение от Asics^ Посмотреть сообщение
strlen

Если чесно то сам не знаю,ждите может люди по-умнее подскажут.
Уже нашол у себе, мы брали уже такое=)))
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.10.2010, 20:17     Символьные массивы #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> // стандартный ввод/вывод
#include <string> // для strlen()
 
int main()
{
    const int n = 256; //целечислинная константа - размер нашего масива m
    char m[n];// сам масив
    std::cin.getline(m, n);// вводим строку 
    int count = 0;//щётчик для подсчёта в строке букв а
    for(int i = 0; i < n; i++)
    {
            if(m[i] == 'a')// если i-ий елемент масива будет 'a' 
                 count++;//то инкрементируем переменную count 
    }    
    std::cout << count << ' ' << strlen(m);//выводим результат програмы на консоль
    std::cin.get();//задержка   
    std::cin.get();//аналогично  
}
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
22.10.2010, 20:18  [ТС]     Символьные массивы #9
Как сдесь в коде например дописать и где например мне нужно чтобы пысало Bykv A= и сдесь например как на картинке 1, и Koluchestvo bykv=24????
Миниатюры
Символьные массивы  
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.10.2010, 20:21     Символьные массивы #10
C++
1
2
std::cout << "Kolu4ectvo bykv 'a'" << count <<std::endl;
std::cout << "Dluna ctroku (+ probelu)" << strlen(m);
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
22.10.2010, 20:38  [ТС]     Символьные массивы #11
Очень спасибо Вам!!!=)))))))))))))))))))))))))))

Добавлено через 15 минут
а что с етим пунктом, Вы его разве сделали: Задача: Начинается ли хотя бы одно слово на букву "М"
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.10.2010, 21:08     Символьные массивы #12
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
#include <iostream>
#include <string>
 
int main()
{
    const int n = 256;
    char m[n];
    std::cin.getline(m, n);
    int count = 0;
    int x = 0;
    for(int i = 0; i < n; i++)
    {
            if(m[i] == 'a')
                 count++; 
            else if(m[i] == 'M')
                 x++;         
 
    }   
    std::cout << "Kolu4ectvo bykv 'a' = " << count << std::endl;
    std::cout << "Dluna ctroku (+ probelu) = " << strlen(m) << std::endl;
    std::cout << "Kolu4ecrvo clov Ha4uhaywuec9 Ha bykve 'M' = " << x;
    std::cin.get();   
    std::cin.get();  
}
При условие что каждое слово будет начинатсо з большой буквы.
IchMors
96 / 92 / 4
Регистрация: 16.05.2010
Сообщений: 307
22.10.2010, 21:10     Символьные массивы #13
А если слово начинается с заглавной А, считать ее не собираетесь?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.10.2010, 21:18     Символьные массивы #14
IchMors, В принцыпе вы правы, но в условие задачи чотко сказано
количество букв "а"
а потом ещё
слово на букву "М"
значит регистр играет роль.
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3781 / 1765 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
22.10.2010, 21:58     Символьные массивы #15
Barca, определить количество слов, начинающихся с буквы "M" можно так:
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
//---------------------------------------------------------------------------
#include <iostream>
#define Delimitters " .,;:!?\t\n"
//---------------------------------------------------------------------------
 
int main()
{
  char FIO[256] = { '0' };
  char *pToken = NULL;
  int Count = 0;
 
  std::cout << "Please, input FIO:\n" << std::endl;
  std::cin.getline(FIO,255);
 
  for (pToken = strtok(FIO, Delimitters); pToken; pToken = strtok(NULL, Delimitters)) {
    if (*pToken == 'M') {
      Count++;
    }
  }
 
  if (Count > 0) {
    std::cout << "Count of words started with 'M' literal: " << Count << std::endl;
  } else {
    std::cout << "No words started with 'M' literal" << std::endl;
  }
  std::system("pause");
 
  return 0;
}
//---------------------------------------------------------------------------
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
26.10.2010, 23:29  [ТС]     Символьные массивы #16
А если нужно в место Начинается ли хотя бы одно слово на букву "М", сделать так Что бы фамилия выводилась в столбец.?
Как тогда сдесь переделать?
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
#include <iostream>
#include <string>
 
int main()
{
    const int n = 256;
    char m[n];
    std::cin.getline(m, n);
    int count = 0;
    int x = 0;
    for(int i = 0; i < n; i++)
    {
            if(m[i] == 'a')
                 count++; 
            else if(m[i] == 'M')
                 x++;         
 
    }   
    std::cout << "Kolu4ectvo bykv 'a' = " << count << std::endl;
    std::cout << "Dluna ctroku (+ probelu) = " << strlen(m) << std::endl;
    std::cout << "Kolu4ecrvo clov Ha4uhaywuec9 Ha bykve 'M' = " << x;
    std::cin.get();   
    std::cin.get();  
}
Добавлено через 2 часа 31 минуту
?????
Temirlan90
 Аватар для Temirlan90
131 / 131 / 8
Регистрация: 30.09.2010
Сообщений: 333
30.10.2010, 14:14     Символьные массивы #17
Barca, можно использовать вот так:
C++
1
 std::cout << "Kolu4ecrvo clov Ha4uhaywuec9 Ha bykve 'M' = " << setw(10) << x;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2011, 13:44     Символьные массивы
Еще ссылки по теме:

C++ Символьные массивы (исправить код)
Сравнение строк (символьные массивы), игнорируя регистровые различия C++
C++ Символьные массивы

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

Или воспользуйтесь поиском по форуму:
redKOTik
Сообщений: n/a
27.11.2011, 13:44     Символьные массивы #18
помогите с задачей на С++.

Даны натуральное число n и символы S(1), ..., S(n). Подсчитать сколько раз среди данных символов встречается символ *.
Yandex
Объявления
27.11.2011, 13:44     Символьные массивы
Ответ Создать тему
Опции темы

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