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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.76
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
#1

Нахождение и подсчет прописных букв - C++

05.10.2009, 18:49. Просмотров 2595. Ответов 21

Возникла проблема с подсчетом прописных букв, вот условие задачи:

Написать функцию, которая получает в качестве параметров две строки и возвращает в вызывающую программу количество прописных букв, одновременно содержащихся в заданных строках.

В главной программе прочесть с клавиатуры две строки, содержащие текст, и вывести на экран количество общих прописных букв во введенных строках.


Мой код в VS 2008:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <iostream>
#include <ctype.h>
#include <stdlib.h>
using namespace std;
int f1(const char*,const char*);
int main(int argc, char* argv[])
{
    char string1[20],string2[20]; 
    cout<<"vvedi dannie:";  
    cin>>string1>>string2;
    cout<<"kolichestvo obshchih propisnyh bukv: "<<f1<<"\n";
    return 0;
}
int f1(const char*s1,const char*s2)
{
    for (;*s1!='\0'&&*s2!='\0';s1++,s2++)
    return (isupper(*s1)+isupper(*s2));
}
В ответе программа выводит вроде бы шестнадцатеричный код, вот пример ее работы:

vvedi dannye:Hello World!
kolichestvo obshchih propisnyh bukv: 01091037

Ошибка в коде программы или надо дополнительно переводить числа в десятичный код? Если да, то как?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2009, 18:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение и подсчет прописных букв (C++):

Подсчитать, сколько было введено: латинских прописных букв, кириллических прописных букв, цифр, знаков переноса, прочих символов. - C++
Помогите, пожалуйста, написать программу :scratch: Подсчитать, сколько было введено: латинских прописных букв, кириллических прописных...

Перевод букв из прописных в строчные - C++
Всем добрый день! Задача вроде бы проста - есть исходный файл. Получить второй файл образованный из первого с заменой всех его прописных...

Замена прописных букв строчными - C++
Всем привет! Такая проблемка: вводим строку и, если после , или ; стоит прописная буква - заменяем эту букву на строчную. Написал...

Количество прописных букв в строке - C++
Привет всем. Ребят есть такая задача: напишите программу, которая подсчитывает и отображает на экране количество прописных букв в строке....

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

Найти количество прописных букв в строке - C++
Здравствуйте, у меня код: #include&lt;iostream&gt; #include&lt;cctype&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; using namespace std; int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
05.10.2009, 19:19 #2
vonorf, ты распечатал адрес функции. Кстати,она еще и неправильно написана
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
05.10.2009, 19:23  [ТС] #3
Учу этот C++ меньше месяца, очень, очень, очень много еще не знаю. Можешь ли ты подсказать, как правильно написать?
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
05.10.2009, 19:25 #4
Цитата Сообщение от vonorf Посмотреть сообщение
Учу этот C++ меньше месяца, очень, очень, очень много еще не знаю. Можешь ли ты подсказать, как правильно написать?
Могу.Функцию надо вызывать,чтобы получить ее результат.
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
05.10.2009, 19:26  [ТС] #5
А если показать на моем примере?
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
05.10.2009, 19:27 #6
f1(string1,string2);
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
05.10.2009, 19:31 #7
это тока самое начало. STL конечно ещё не известен. то есть нужен вариант с совсем простыми и всем известными элементами языка, я так понимаю
щас поем и напишу
если XuTPbIu_MuHTAu не опередит
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
05.10.2009, 19:39  [ТС] #8
Огромное спасибо за помощь, все получилось.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <iostream>
#include <ctype.h>
#include <stdlib.h>
using namespace std;
int f1(const char*,const char*);
int main(int argc, char* argv[])
{
    char string1[20],string2[20]; 
    cout<<"vvedi dannie:";  
    cin>>string1>>string2;
    cout<<"kolichestvo obshchih propisnyh bukv: "<<f1(string1,string2)<<"\n";
    return 0;
}
int f1(const char*s1,const char*s2)
{
    for (;*s1!='\0'&&*s2!='\0';s1++,s2++)
    return (isupper(*s1)+isupper(*s2));
}
При написании Hello World выдает 2 прописные буквы, но если строчные буквы находятся в середине слова он их не воспринимает...
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
05.10.2009, 19:48 #9
Цитата Сообщение от vonorf Посмотреть сообщение
int f1(const char*s1,const char*s2)
{
for (;*s1!='\0'&&*s2!='\0';s1++,s2++)
return (isupper(*s1)+isupper(*s2));
}[/CPP]

При написании Hello World выдает 2 прописные буквы, но если строчные буквы находятся в середине слова он их не воспринимает...
правильно, ты возвращаешь сумму значений двух результатов isupper(*s1) и isupper(*s2). где isupper(*s1) - возвращает один, если первый символ строки s1 вверхнем регистре, и ноль, если в нижнем
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
05.10.2009, 19:52  [ТС] #10
Понятно, а есть возможность сделать так, чтобы рассматривался не только первый символ?
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
05.10.2009, 19:56 #11
Цитата Сообщение от vonorf Посмотреть сообщение
Понятно, а есть возможность сделать так, чтобы рассматривался не только первый символ?
Есть.Рассматривай каждый в цикле и только после этого делай return.

P.S, Tant, готовый код я все равно в эту тему не буду постить
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
05.10.2009, 20:10 #12
Цитата Сообщение от XuTPbIu_MuHTAu Посмотреть сообщение
Есть.Рассматривай каждый в цикле и только после этого делай return.

P.S, Tant, готовый код я все равно в эту тему не буду постить
причина: воспитание или комерческая тайна?
P.S. вопрос вполне серьёзный.
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
05.10.2009, 20:17 #13
TanT, Это скорее подход к проблеме. Можно помогать,а можно решить проблему вместо автора. Исходя из сегодняшнего расположения звезд я выбрал первый вариант
vonorf, return осуществляет выход из функции,поэтому цикла фактически не получается. Заведи внутри отдельную переменную,в которой посчитаешь количество,а потом ее верни ретёрном.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
05.10.2009, 20:22 #14
Цитата Сообщение от XuTPbIu_MuHTAu Посмотреть сообщение
TanT, Это скорее подход к проблеме. Можно помогать,а можно решить проблему вместо автора. Исходя из сегодняшнего расположения звезд я выбрал первый вариант
хитро, хотя глядя на ник, думаю не один я так думаю
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
05.10.2009, 20:29  [ТС] #15
C++
1
2
3
4
5
6
7
int f1(const char*s1,const char*s2)
{
    float S;
    for (;*s1!='\0'&&*s2!='\0';s1++,s2++)
    S=(isupper(*s1)+isupper(*s2));
    return S;
}
Если вы имели ввиду это, то он вообще ничего не считает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2009, 20:29
Привет! Вот еще темы с ответами:

Буллеан (степень) множества латинских прописных букв - C++
Найти буллеан множества латинских прописных букв.

Подсчитать слова, состоящие из латинских прописных букв. - C++
int main(int argc, char* argv) { int cnt=0, i; char *str=&quot;I can use the online Help system from the Help menu.&quot;; for (i=1;...

СИ: Вывод отдельно заглавных и прописных букв из строки - C++
Нужно написать задачу на СИ, задание следущее: с клавиатуры вводится случайная строка. На экран выводятся раздельно заглавные и прописные...

Удалить из строки слова, состоящие только из прописных букв - C++
Работа со строками (С) Дана строка символов, состоящая из прописных и строчных латинских букв и пробелов. Группы символов, разделенные...


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

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

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