Другие языки программирования и технологии

Как решить эти 3 задачи на С++? Помогите, пожалуйста.

1. Дана строка символов. Выяснить, входит ли в строку буква ю?2. Определить, каких слов в тексте больше: начинающихся с буквы а или п.3. Слово записано наоборот. Его нужно расшифровать.
Артем Шилкин
Артем Шилкин
1 500
Я напишу вам решение этих задач, Вам останется только записать их на языке C++.

1. В цикле от нуля до длины стороки -1 проверяем значение каждого символа. Если встречаем искомый символ, то выходим из цикла установив булевую переменную говорящую о успехе/неуспехе поиска (флаг) . После цикла проверяем значение флага и в случае его истинности отвечаем, что искомая буква есть, в случае ложности отвечаем, что искомой буквы нет.

2. Заводим две целочисленные переменные, в них будем складывать количество найденных слов начинающися с а и п соотвественно. Затем последовательно читаем символ за символом исходного текста. Будет замечательно если сделать дополнительную функцию проверяющую является очередной символ буквой или чем-то другм (пробем, знак препинания итд) . Так вот, читаем исходный текст и первую найденную букву проверяем на а или п, если это так увеличиваем на еденичку соотвествующую переменную. Затем читаем до тех пор пока не появится небуквенный символ (идем до конца текущего слова) , затем опять ищем первую букву итд в цикле до конца текста. В конечном итоге просто сравниваем какая из наших двух переменных больше.

3. Создаем еще один символьный массив раный по размеру исходному слову. И в цикле в обратном порядке переписываем в него элементы из исходного слова. Т. е. последний элемент идет в первый, предпоследний во второй итд. В результате в нашем созданном массиве будет расшифрованное слово.

Успехов!
Игорь Куц
Игорь Куц
347
Лучший ответ
Здесь возможны 2 варианта:
1. Вы берете деньги или себя и несете к программисту.
2. Вы открываете учебник и начинаете изучать, что такое поинтер, интежер, выборка, и вообще все-все-все.
3. Не сменить ли вам специальность?
// 1 задача:
// Функция возвращает true, если "ю" найдена в строке, иначе false
bool findJu (const char *s) {
for (int i=0; i < strlen(s); i++)
if (s[ i ]=='ю') return true;
return false;
}

// 2 задача:
// Функция возвращает:
// 1, если слов, начинающихся с "а", больше
// -1, если слов, начинающихся с "п", больше
// 0, если их одинаковое количество
int findWordAP (const char *s) {
std::string buf = ' ' + buf;
int cnt_a = 0, cnt_p = 0;
for (int i=0; i<buf.length()-1; i++ ) {
if ( buf [ i ] != ' ') continue;
if (buf[i+1]=='а') ++cnt_a;
if (buf[i+1]=='п') ++cnt_p;
}
if (cnt_a>cnt_p) return 1;
if (cnt_p>cnt_a) return -1;
return 0;
}

// 3 задача
// Функция возвращает "перевернутое" слово
std::string reverseWord () {
std::string buf;
for (int i = s.length()-1; i >= 0; i--) buf += s[ i ];
return buf;
}

// p.s. функции не тестировал, использовать на свой страх и риск :)