检查int是否不是alpha

时间:2017-01-12 12:13:13

标签: c string int structure isalpha

我的结构有

int Hour
int Min
int Sec

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

我将整行分成不同的时间,然后我做第二次分裂到结构。 我正在做

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

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

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

无效。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

你在做什么是错误的顺序。如果您使用非数字字符串调用atoi,则会返回0。然后检查整数0是否不是一个字母,当然它不是。您需要以相反的顺序执行此操作:首先检查您是否有非数字字符串(您必须在循环中执行此操作);然后 将其转换为整数。

这实际上可以在单个标准库函数调用中完成,但不能用aoti来完成,但<i>italics</i>没有strtol函数。

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