s=="Monday"这样是否可以进行比较?s为指针其值为地址,"Monday"是字符串常量他的值为首字符存储单元的地址。二者能否进行地址上的数值比较,或者说直接比较地址,如果地址相等的话值也相等

img

img

img

img

#include <stdio.h>
#include <string.h>

#define MAXS 80

int getindex( char *s );

int main()
{
int n;
char s[MAXS];

scanf("%s", s);
n = getindex(s);
if ( n==-1 ) printf("wrong input!\n");
else printf("%d\n", n);

return 0;

}

/* 你的代码将被嵌在这里 */

int getindex( char *s )
{
if(s=="Sunday")
return 0;
else if(s=="Monday")
return 1;
else if(s=="Tuesday")
return 2;
else if(s=="Wednesday")
return 3;
else if(s=="hursday")
return 4;
else if(s=="Friday")
return 5;
else if(s=="Saturday")
return 6;
else
return -1;
}

  1. 字符串的比较可以使用函数 strcmp或者strncmp。就比如下面这样。
    /* 你的代码将被嵌在这里 */
    int getindex(char *s)
    {
     if (strncmp(s, "Sunday", strlen("Sunday")) == 0)
         return 0;
     else if (strncmp(s, "Monday", strlen("Monday")) == 0)
         return 1;
     else if (strncmp(s, "Tuesday", strlen("Tuesday")) == 0)
         return 2;
     else if (strncmp(s, "Wednesday", strlen("Wednesday")) == 0)
         return 3;
     else if (strncmp(s, "hursday", strlen("hursday")) == 0)
         return 4;
     else if (strncmp(s, "Friday", strlen("Friday")) == 0)
         return 5;
     else if (strncmp(s, "Saturday", strlen("Saturday")) == 0)
         return 6;
     else
         return -1;
    }
    

希望采纳呀!!!