Первое задание в варианте более-менее современного Си++ можно было бы выполнить примерно в таком вот духе:
#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