【发布时间】:2015-05-10 10:30:59
【问题描述】:
我在微控制器中创建了 C 程序,并且想将我的 C 程序中的字符串与从我的 PC 接收到的字符串进行比较,我的 PC 中的程序使用 C#,并且默认情况下 C# 中的字符串不包含空字符。
那么,我的 c 程序不会自动在从 PC 接收到的字符串中添加空字符?
strcmp函数是否可以比较2个字符串,1个字符串包含空字符,另一个不包含空字符?
【问题讨论】:
-
strcmp要求其两个参数都以 NUL 结尾 -
在 C 中,如果您没有初始化字符串变量,则为 null
-
只是为了补充@CoolGuy先生的评论,
string.h中的大部分函数都需要以空值结尾的参数。 -
那么,当我的c程序从c#程序接收到字符串进行比较时,我需要手动添加空字符吗?
-
@acostela 未初始化的变量具有不确定的值。它不能保证为 0 或 NULL 或类似的东西。 (另外,C 中没有构造函数。)
标签: c strcmp null-terminated c-strings