检查 int 是否不是 alpha

Checking if int is not alpha

我的结构有

int Hour
int Min
int Sec

我正在从文件中读取字符串。文件包含如下文本:23:21:30 12:32:54

我将整行拆分为不同的时间,然后我对结构进行第二次拆分。 我在做

structure[x].Hour = atoi(token);

然后我需要检查 structure[x].Hour 是否不是 alpha。

if(isalpha(structure[x].Hour)){//DO Something} 

无效。有什么想法吗?

你并没有真正提出问题或告诉我们你有什么问题,但无论如何我都会帮助你...

你的顺序错了。如果您使用 non-numeric 个字符串调用 atoi,它将 return 0。然后检查整数 0 是否不是字母,当然不是。您需要以相反的顺序执行此操作:首先检查您是否没有 non-numeric 字符串(您必须在循环中执行此操作);然后然后将其转换为整数。

这实际上可以在单个标准库函数调用中完成,但不支持 aoti,但使用 strtol 函数。

strtol 函数内置了错误检查功能,并支持帮助您确定整个字符串是否已转换。