C 检查int是否不是alpha

C 检查int是否不是alpha,c,string,int,structure,isalpha,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} 它不起作用。有什么想法吗?你不会真的问问题或告诉我们你有什么问题,

我有一个结构

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} 

它不起作用。有什么想法吗?

你不会真的问问题或告诉我们你有什么问题,但我会帮你的

你做的事情顺序不对。如果使用非数字字符串调用
atoi
,它将返回
0
。然后检查整数
0
是否不是字母,当然不是。您需要按相反的顺序执行:首先检查您没有非数字字符串(必须在循环中执行);然后将其转换为整数

这实际上可以在单个标准库函数调用中完成,但不是对不支持该功能的
aoti
,而是使用该函数


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

检查
标记
。字段
hour
已经是一个整数。整数中不能有字母字符。在调用atoi之前,您需要检查您的令牌的alpha字符。