我不确定为什么这不成功。我附上了我的代码和错误。要关注的一行是if (strlen (String() >= MAX_STR_LEN-1))
我正在尝试使用内置函数strlen
来比较String
,这是一个临时值,用于保存输入文件所具有的当前字符。我想将String
的大小与我的变量MAX_STR_LEN
进行比较,后者只是256的整数。如果我能提供更多信息,请告诉我。
void ReadData(FILE *InputFile, DArray *DynamicArrayPtr)
{
Data TempData; /* temp variable to hold data */
int lcv = 1; /* loop control variable */
int strLen; /* The actual input string length */
char String[MAX_STR_LEN]; /* temp variable to hold string */
while (EOF != fscanf(InputFile, "%s", String))
{
/* Insert code here to make sure the input data is not too long*/
if (strlen (String() >= MAX_STR_LEN-1)) {
}
else {
printf("Error, input string too long \n");
}
TempData.Num = lcv++;
strcpy(TempData.String, String);
PushToDArray(DynamicArrayPtr, &TempData);
} /* while() */
} /* ReadData() */
答案 0 :(得分:0)
由此发生错误 if(strlen(String()> = MAX_STR_LEN-1)){ } 在String之后删除()。字符串不起作用。 strlen返回String的长度。以下工作正常。
if(strlen(String) >= MAX_STR_LEN-1){
}