Для начала нет необходимости объявлять эти переменные как переменные пространства имен.
string time, hour, minute, amPm, miltime;
char amPmCheck;
Они должны быть объявлены как локальные переменные, если функция main
.
И нет никаких объявлений переменных colon
и space
.
Это утверждение
amPm = time.substr(space, back);
не имеет смысла. Переменная amPm
объявлена имеющей тип char
вместо типа std::string
.
Объявление функции
void timeConversion(hour, minute, amPmCheck)
неправильно. Вы не указали типы параметров функции.
Заявления, подобные этому
if(int(hour) == 12)
не имеет смысла. Вы должны использовать хотя бы стандартную функцию std::stoi
для преобразования объекта типа std::string
в объект типа int
.
В заявлении
hour.assign('00');
используется многобайтовый символьный литерал. Кажется, вы имеете в виду двойные кавычки
hour.assign("00");
То же самое верно для выписки
hour.insert(0, '0');
Это утверждение
hour.assign(12+int(hour));
тоже не имеет смысла.
В вашем коде слишком много ошибок.
Сначала вы должны прочитать документацию класса std::basic_string
, чтобы узнать, как использовать его nethods.
И не используйте обличительный
using namespace std;
Это может быть причиной ошибки конфликтующих объявлений.
Смотрите, например, сообщение об ошибке вашего компилятора
main.cpp:15:8: error: 'std::string time' redeclared as different kind of symbol
string time, hour, minute, amPm miltime;
^~~~
In file included from /usr/include/pthread.h:24:0,
from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
from /usr/include/c++/6/ext/atomicity.h:35,
from /usr/include/c++/6/bits/ios_base.h:39,
from /usr/include/c++/6/ios:42,
from /usr/include/c++/6/ostream:38,
from /usr/include/c++/6/iostream:39,
from main.cpp:10:
/usr/include/time.h:192:15: note: previous declaration 'time_t time(time_t*)'
extern time_t time (time_t *__timer) __THROW;
^~~~
Используйте вместо квалифицированных имен стандартные имена, объявленные в пространстве имен std
.