【发布时间】:2019-04-16 11:39:01
【问题描述】:
我想用下面的函数来比较两个char数组:
if(strcmp((PtrTst->cDatVonCom),szGeraeteAntwort)==0)
现在我的问题是 PtrTst->cDatVonCom[5000] 与 szGeraeteAntwort[255] 不同,整个值看起来有点不同:
(摘自日志文件)。
PtrTst->cDatVonCom:
04/16/19 12:53:36 AB A{CR}{LF}
0 0{CR}{LF}
szGeraeteAntwort:
04/16/19 12:53:36 AB A 0 0{CR}{LF}
我可以检查两个命令(在本例中为 AB A)是否相同? 该命令可以更改,并且必须相同才能通过 if 语句。
更新:
两个字符数组始终存在,我需要检查“szGeraeteAntwort”是否在 PtrTst->cDatVonCom 中。 在 C# 中,我会使用 cDatVonCom.Contains... 或类似的东西来检查是否相同。
【问题讨论】:
-
其他空白字符呢?
-
你可以修改数组的内容吗?
-
真的需要使用
strcmp来执行比较,而不是其他方法吗?就一个电话? -
添加到@JohnBollinger,您从
cDatVonCom中提取命令并使用strstr搜索主数组中的子字符串。如果找到子字符串,strstr将在主字符串中返回有效指针,否则返回 NULL。 -
@JohnBollinger:这不是必需的,但这是我用我糟糕的 c 技能找到的唯一方法
标签: c parsing newline string-comparison text-processing