Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование на c++

Владимир Романов Ученик (105), закрыт 1 год назад
Кто разбирается, помогите пожалуйста. Я так поняла нельзя использовать класс string,
Лучший ответ
Бывший Геймер Просветленный (25782) 1 год назад
Писали когда-то на C без всяких стрингов.
 #include 
#include

using namespace std;

int main() {
const size_t N = 80;
char str[N+1];
char *s = fgets(str, N+1, STDIN);
if (s == NULL) return 1;
size_t letters = 0;
for (size_t i = 0; i < N && str[i] != 0; i++)
if (str[i] == 's') letters++;
cout << letters << endl;
return 0;
}
Реверс строки:
 #include 
#include
#include

using namespace std;

int main() {
const size_t N = 80;
char str[N+1];
char *s = fgets(str, N+1, STDIN);
if (s == NULL) return 1;
size_t len = strlen(str);
for (size_t i = 0; i < len; i++)
cout << str[len - i - 1];
cout << endl;
return 0;
}
D PМудрец (11435) 1 год назад
Файл stdin, по идее, должен быть написан маленькими буквами
Бывший Геймер Просветленный (25782) D P, возможно. С мобилы пишу по памяти. :-)
Остальные ответы
Krab Bark Искусственный Интеллект (287851) 1 год назад
Да, по заданию - нельзя использовать.
Krab BarkИскусственный Интеллект (287851) 1 год назад
#include <iostream>
int main(){
char s[81]; int n=0,k=0;
std::cin.getline(s,81); while(s[n])k+=s[n++]=='s';
std::cout<<k<<'\n'; while(n)std::cout<<s[--n];}
λ Искусственный Интеллект (233623) 1 год назад
там же ясно написано - использовать Си строку.
Это просто.
char strora[80];

Цикл for используйте
для чтения символов этой строки.
D P Мудрец (11435) 1 год назад
Первое задание в варианте более-менее современного Си++ можно было бы выполнить примерно в таком вот духе:
 #include  
#include
#include
int main( int argc, char* argv[] )
{
if( argc > 1 )
{
for( int i = 1; i < argc; i++ )
{
size_t n = 0;
// Используем алгоритм обхода элементов коллекции for_each
// который для каждого элемента вызывает лямбда-выражение
// (это то, что начинается с [&], символ & означает, что
// переменные внутрь лямбды захватываются по ссылке), в котором
// каждый символ строки c сравнивается с 's' или 'S'
std::for_each( argv[i], argv[i] + strlen(argv[i]),
[&](char c){ if(c == 's' || c == 'S') n++; });
std::cout << "Число S в '" << argv[i] << "': " << n << std::endl;
}
}
else
{
std::cout << "Подсчет символов S в строке. Использование:"
<< std::endl;
std::cout << argv[0] << " 'строка'" << std::endl;
}

return 0;
}
Пример запуска и выполнения программы:
./app 'Sucessful success' Sensation
Число S в 'Sucessful success': 6
Число S в 'Sensation': 2
Похожие вопросы