【发布时间】:2014-07-16 01:13:18
【问题描述】:
我正在尝试比较两个不同长度的 char* 的字符串文字值。他们没有空终止符,所以我不能使用 strcmp。我应该如何确定它们是否相等?有什么方法可以用吗?
示例代码:
int main(){
char* one = "milk";
char* two = "dalek! Exterminate!";
char* three = "milk";
//Compare and check to see if they are equal. one and two would return false but one and three would return true
}
【问题讨论】:
-
char* c = "..."格式不正确。字符串文字的类型为const char*。你/究竟/想要做什么? -
您的示例 do 中的字符串具有空终止符(它们隐含在字符串文字中)。您确定在您的真实代码中字符串真的没有空终止符吗?
-
@sth 当我执行 strcmp 时,我得到一个分段错误:11。我在某处读到这意味着我的 char* 没有空终止符
-
段错误可能有很多原因。确定它到底发生在哪里(调试器会告诉你)并发布与有问题的代码行相关的代码。
-
应该算字符串吗?因为那时你接受了一个错误的答案......
标签: c compare string-length