115k views
0 votes
Write a C program that reads a time from the keyboard. The time should be in the format "HH:MM AM" or "HH:MM PM". Hours can be one or two digits, minutes are exactly two digits, and AM/PM can be in any mixture of uppercase and lowercase. For example, "1:10 am", "12:05 PM", and "12:45 aM" are valid inputs. Your program should include a function that takes a string parameter containing the time. This function should convert the time into a four-digit military time based on a 24-hour clock. For example, "1:10 AM" would output "0110 hours", "11:30 PM" would output "2330 hours", "12:15 AM" would output "0015 hours", and "5:05 Pm" would output "1705 hours". The function should return a string to be written to the screen by the main function

User Mhrabiee
by
3.6k points

2 Answers

5 votes

Answer:

See explaination

Step-by-step explanation:

#include <iostream>

#include <stdio.h>

#include <string>

#include <cctype>

#include <stdlib.h>

#include <sstream>

using namespace std;

string itoa(int num)

{

stringstream converter;

converter << num;

return converter.str();

}

string convert(string str) ampm == "PM"

int main() {

string ntime;

cout<<"Enter time: ";

getline(cin,ntime);

cout<<"Corresponding military time is "<<convert(ntime)<<" hours";

return 0;

}

User Sudhanshu Vohra
by
3.9k points
2 votes

Answer:

Check the explanation

Step-by-step explanation:

C++ code:

#include <bits/stdc++.h>

using namespace std;

string convert(string s){

int l=s.length();

string ans=" hours";

if(l==7){

if(s[5]=='a'||s[5]=='A'){

ans[0]='0';

ans[1]=s[0];

ans[2]=s[2];

ans[3]=s[3];

else{

if(s[6]=='a'||s[6]=='A'){

ans[0]=s[0];

ans[1]=s[1];

ans[2]=s[3];

ans[3]=s[4];

return ans;

}

int main(){

cout<<"Enter time: ";

string s;

getline(cin,s);

cout<<"Corresponding military time is "<<convert(s)<<endl;

return 0;

}

User Raviture
by
3.3k points