写一段C++代码,判断一个字符串是否为"时间格式"
时间: 2023-06-01 18:07:08 浏览: 234
以下是C代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
// 判断一个字符串是否为时间格式,时间格式必须为"hh:mm:ss",其中hh、mm、ss必须是合法的时间数值
int is_time_format(char* str) {
int len = strlen(str);
if (len != 8) {
return 0; // 时间格式字符串长度必须为8
}
for (int i = 0; i < len; i++) {
if (i == 2 || i == 5) {
if (str[i] != ':') {
return 0; // 时间格式必须为"hh:mm:ss"
}
} else if (!isdigit(str[i])) {
return 0; // 时间格式必须为数字
}
}
int hour = (str[0] - '0') * 10 + (str[1] - '0');
int minute = (str[3] - '0') * 10 + (str[4] - '0');
int second = (str[6] - '0') * 10 + (str[7] - '0');
if (hour < 0 || hour > 23 || minute < 0 || minute > 59 || second < 0 || second > 59) {
return 0; // hh、mm、ss必须是合法的时间数值
}
return 1;
}
int main() {
char str[] = "09:30:45";
if (is_time_format(str)) {
printf("%s 是时间格式\n", str);
} else {
printf("%s 不是时间格式\n", str);
}
return 0;
}
```
阅读全文