C++ 比较两个字符串

C++ 比较两个字符串,c++,C++,我有一个用于与字符串进行比较的函数: int string_compare(char *str1, char *str2){ while(*str1==*str2) { if ( *str1 == '\0' || *str2 == '\0' ) break; str1++; str2++; } if( *str1 == '\0' && *str2 == '\0' ) return 0; else if(*str1 == '\0' &&am

我有一个用于与字符串进行比较的函数:

int string_compare(char *str1, char *str2){
  while(*str1==*str2)
{
  if ( *str1 == '\0' || *str2 == '\0' )
     break;

  str1++;
  str2++;
}
 if( *str1 == '\0' && *str2 == '\0' )
  return 0;
else if(*str1 == '\0' && *str2 != '\0' )
  return -1;
 else 
   return 1;}
如果这些字符串相同,则返回0;如果str1>str2,则返回1;如果str2相同,则返回-1
编辑:现在它不应该返回任何警告,但仍然不能正常工作

按照下面给出的代码检查字符串是否为空

   if (myString != NULL) {
      // doSomething
    }
如果要比较两个字符串,请尝试以下方法: -如果还要比较字符串的大小写,则strcmpstring1,string2==0。
-如果不比较字符串的大小写,则strcmpistring1,string2==0。

Ok,有什么问题吗?它不处理*str1!='\0'&&*str2!='\对不起!问题是,如果任何ifs都已验证,则不会返回任何这些值。为什么不能只使用strcmp?您可以先编写一个字符比较函数,然后了解作业的解决方案非常复杂。此外,您还可以使用myString[0]='\0'