如何从字符串中删除 : 并获取其他元素
How to remove : from string and get other elements?
所以,我必须制作以下程序:
我输入两个"时钟",格式为 HH:MM,我必须以分钟为单位检查它们之间的差异并输出它。然后,我必须检查哪个时间的大小更大,以分钟为单位,并输出哪个时间更大或它们是否相等。
所以,我已经这样做了:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
string a, b, c, d;
int a_min, b_min;
getline(cin, a, ':');
cin >> b;
getline(cin, c, ':');
cin >> d;
a_min = atoi(a.c_str()) * 60 + atoi(b.c_str());
b_min = atoi(c.c_str()) * 60 + atoi(d.c_str());
if (a_min > b_min){
cout << "Razlikata iznesuva " << a_min - b_min << " minuti" << endl;
cout << "Pogolemo e prvoto vreme" << endl;
}
else if (b_min > a_min){
cout << "Razlikata iznesuva " << b_min - a_min << " minuti" << endl;
cout << "Pogolemo e vtoroto vreme" << endl;
}
else if (a_min == b_min){
cout << "Vreminjata se isti" << endl;
}
return 0;
}
但是当您输入 HH:MM 时,我在 HH 和 MM 之间有一个":",因此我无法简单地获取数字,所以我需要帮助如何获取小时和分钟并转换它们(我想转换应该很容易)或者是否有替代和更好的方法?
-
你应该读的是数字,而不是字符串。数字被读取直到非数字,因此将在
:
停止:char dummy; int hour, minute; cin >> hour >> dummy >> minute; // check dummy == ':'
-
字符串被读取到空格。除非您设置了跳过,否则不会跳过空格。但是,有一个函数允许读取字符串直到特定的分隔符:
string hour, minute; getline(cin, hour, ':'); // this will eat the `:` cin >> minute; // assuming whitespace or eof after this // check the values, that you didn't cross eof and such.
使用std::istringstream
为您执行解析;这需要 24 小时格式的时间戳:
static unsigned int minutesSinceMidnight( const std::string &timeStamp )
{
unsigned int hours, minutes;
char colon;
std::istringstream( timeStamp ) >> hours >> colon >> minutes;
return hours * 60 + minutes;
}
然后,您可以轻松比较两个时间戳,并告诉它们相隔多少分钟。
像这样:
int h,m;
char separator;
cin >> h >> separator >> m;
if(separator == ':' && h>=0 && h < 24 && m >=0 && m < 60)
{
// you have a correct hour
}
相关文章:
- C++ - 忽略并从其他文件获取数据
- 我可以使用 decltype() 或其他东西通过指针获取真实类型吗?
- 如何使用 C/C++ 和 system() 系统调用以外的其他方法在 Linux 中获取文件功能?
- 如何从其他线程 winapi 获取消息
- 如何从 std::optional 中获取 QByteArray<QByteArray>,并在没有其他 malloc 的情况下保留 std::nullopt?
- 还有其他方法可以为乘法表编写循环以获取运行时值吗?
- 其他类中的枚举类的二传手和获取器
- 如何在没有作弊引擎的情况下从其他应用程序获取指针地址?
- 从Baseclass获取其他功能
- boost::可选 - 对对象使用 boost::in_place,构造器通过引用获取其他对象
- 使用模板创建一个结构,该模板获取其他结构的指针
- 如何在进程间通信中获取其他终结点的进程 ID
- 如何使用窗口 API 获取其他应用中的当前活动
- 如何从字符串中删除 : 并获取其他元素
- 将列表元素插入向量,C++获取其他不需要的值
- 如何使用DX9获取其他全屏游戏的屏幕截图
- 使用参数获取其他参数
- 在获取其他函数中的变量后创建数组
- 在 Xwindow 中获取其他窗口的标题
- c++ /Linux如何获取其他用户的读权限状态?