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

Посчитать количество букв в строке - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
kuidreS
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 37
15.05.2010, 10:29     Посчитать количество букв в строке #1
Помогите пожалуйста начинающиму.... Условие задачи: "Необходимо ввести с клавиатуры строку и посчитать количество букв в введеной строке.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alip
53 / 32 / 3
Регистрация: 10.03.2010
Сообщений: 85
15.05.2010, 10:57     Посчитать количество букв в строке #2
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    char str[50];
    cout << "Input string:";
    cin.getline(str, 50);
    int len=strlen(str);
    int num=0;
    for (int i=0; i<=len; i++)
        if (isalpha(str[i])) num++;
    cout << "Number of letters: " << num;
    return 0;
}
kuidreS
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 37
15.05.2010, 11:29  [ТС]     Посчитать количество букв в строке #3
А оно что-то не работает.

Добавлено через 15 минут
вот просто фрагмет того, что я пытался сделать... Только у меня программа считает колличество всех символов (включая пробел, точку, запятую и т.д.). А мне нужно посчитать количесво только букв. Посмотрите что нужно добавить в мою прогу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <conio.h>
#include <cstring>
# include <math.h>
using namespace std;
int main() 
{
char* str = new char[80];
cout << "Please, enter the string (only by English): ";
cin.getline(str, 80, '\n');
int count = strlen(str);
cout << "Sum of elements= " <<count;
getch();
delete [] str;
return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
15.05.2010, 11:48     Посчитать количество букв в строке #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
    
bool isAlpha(char c){
    return isalpha(c);
}
 
int main(){
    std::string buf;
    std::cout << "String: ";
    std::getline(std::cin, buf);
    std::cout << std::count_if(buf.begin(), buf.end(), isAlpha) << " letters." << std::endl;
    return 0;
}
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.05.2010, 12:00     Посчитать количество букв в строке #5
kuidreS, функция подсчета количества букв в строке str. Для любителей велосипедов.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <cstdlib>
 
int AlphaCount(const char* str) {
  int result = 0;
 
  for (; *str; ++str)
    if (isalpha(*str))
      ++result;
 
  return result;
}
kuidreS
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 37
16.05.2010, 10:36  [ТС]     Посчитать количество букв в строке #6
easybudda, можно вопрос. Я просто попробывал запустить то, что Вы написали и мне выдает вот это:
Миниатюры
Посчитать количество букв в строке  
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.05.2010, 11:15     Посчитать количество букв в строке #7
kuidreS, ого! Честно говоря, никаких идей... Даже представить не могу, где это там такое - (unsigned)(c + 1) <= 256... Попробовал разными компиляторами компилить - всё равно работает... Самому интересно, почему у Вас оно себя так ведёт...
Посчитать количество букв в строке
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
16.05.2010, 11:17     Посчитать количество букв в строке #8
kuidreS, что вводили(если вылетает после ввода) и каковы настройки проекта?
kuidreS
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 37
16.05.2010, 11:45  [ТС]     Посчитать количество букв в строке #9
Я попробывал ввести то, что написал выше easybudda:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
        
bool isAlpha(char c){
        return isalpha(c);
}
 
int main(){
        std::string buf;
        std::cout << "String: ";
        std::getline(std::cin, buf);
        std::cout << std::count_if(buf.begin(), buf.end(), isAlpha) << " letters." << std::endl;
        return 0;
}
после того, как нижимаю "компилировать" оно запускает консольное окно, вроде нормально работает, я ввожу строку, а оно мне выкидывает такое сообщение, которое чуть выше уже присутствует. Я не знаю что оно от меня хочет, я такое первый раз увидел. А желаемого результата так и не добился. Помогите пожалуйста сделать эту программу.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.05.2010, 12:57     Посчитать количество букв в строке #10
kuidreS, ну хорошо, измените функцию
C++
1
2
3
bool isAlpha(char c){
    return ( ( c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z' ) );
}
а
C++
1
#include <cctype>
можно убрать.
kuidreS
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 37
16.05.2010, 13:20  [ТС]     Посчитать количество букв в строке #11
поменял. Теперь я ввожу строку и консольное окно, где я ввел строку исчезает. Типа оно что-то выполнило и выключилось.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.05.2010, 14:36     Посчитать количество букв в строке #12
Цитата Сообщение от kuidreS Посмотреть сообщение
Теперь я ввожу строку и консольное окно, где я ввел строку исчезает.
Очень необычная ситуация! Вот тут что-то похожее...
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
16.05.2010, 14:45     Посчитать количество букв в строке #13
kuidreS, хотелось бы все таки разобраться в чем дело.
Цитата Сообщение от kuidreS Посмотреть сообщение
я ввожу строку
Какую именно строку вы вводите, что программа вылетает, приведите пример.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.05.2010, 14:58     Посчитать количество букв в строке #14
CyBOSSeR, я думаю - это какая-то кривая сборка студии с корявой реализацией ctype.h - как я над этой штукой ни издевался, ничего кроме английских букв считать не хочет! И ошибок никаких не выдаёт...
kuidreS
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 37
16.05.2010, 15:11  [ТС]     Посчитать количество букв в строке #15
CyBOSSeR, я ввожу абсолютно любую строку. К примеру: "My name is Sasha!". нажимаю энтер и вместо того, чтобы программа мне выдала количество букв=13, консолевое окно закрывается.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
16.05.2010, 16:19     Посчитать количество букв в строке #16
easybudda, весьма странная вещь, не должно оно падать, все правильно. По ходу действительно в студии косяк.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2010, 20:46     Посчитать количество букв в строке
Еще ссылки по теме:

C++ Посчитать количество букв в введенной строке символов
C++ Посчитать количество цифр и букв в строке
Посчитать с помощью функции количество букв и цифр в строке. C++

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

Или воспользуйтесь поиском по форуму:
kuidreS
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 37
17.05.2010, 20:46  [ТС]     Посчитать количество букв в строке #17
Спасибо всем за помощь. Действительно помогли. Я уже сделал. Правда чуть-чуть по-другому. Спасибо всем
Yandex
Объявления
17.05.2010, 20:46     Посчитать количество букв в строке
Ответ Создать тему
Опции темы

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