微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在没有strcmp的情况下将指针与字符串进行比较?

如何解决如何在没有strcmp的情况下将指针与字符串进行比较?

一个输入来自命令行,另一个来自函数

int main (int argc,char *argv[])
{
    search(argv[1]);
}

int search(char *pointer)
{
    char *s1 = "hello";
    int t;
    t = 0;

    if (pointer == s1)
        { t = 1; }
    else
        { t = 0; }
}

解决方法

你不能在 c 中只比较像指针 == s1 这样的字符串。 您需要比较字符串中的所有字符。这就是为什么你需要一个循环

int search(char *pointer)
{
   char *s1 = "hello";

   int t=1 ;
   int i=0;

      while(s1[i]!='\0' && pointer[i] !='\0'){
         if(s1[i] != pointer[i]){
            t = 0;
            break;
         }
          i++;
         if(t==0)
            return 0;
         else
            return 1;

      }       
}

你可以像这样从 main 调用:

int main (int argc,char *argv[])
{
   if(search(argv[1]) == 1){
      printf("Equal");
   }
   else{
      printf("Not equal");
   }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。