首页 > 解决方案 > 在c中将字符串与“>”、“<”、“=”进行比较

问题描述

我想知道当我们有 s1 > s2 时比较什么以及结果是什么(例如,当我们比较字符时,比较它们的 ASCII 对应代码)。我读到这个操作比较了 s1 和 s2 的第一个字符,但是如果我尝试与 s1[0] > s2[0] 进行比较,结果是不同的,那么就不可能了。

标签: cif-statementcomparisonimplicit-conversionc-strings

解决方案


比较==意味着检查指针是否指向同一个对象,所以:

char s1[] = "foo";
char s2[] = "foo";
if(s1 == s2) 
    puts("Same object");
else
    puts("Different object");

将打印“不同的对象”。

<>除非指针指向同一个对象,否则绝对没有意义。例如,您可以这样做:

char s[] = "asdfasdf";
char *p1 = &s[3], *p2 = &s[6];
if(p1 < p2) 
    // Code

推荐阅读