请解释这种比较字符串的方法

dat*_*ili -5 c string pointers

例如,假设一些k是任意数字= 2 k=2,那么C中有代码:

int wordcomp(char *p, char *q) {
   int n = k;
   for ( ; *p == *q ; p++, q++) {
      if (  *p==0 && --n == 0 )
         return 0;
   }
   return *p - *q;  
}      
Run Code Online (Sandbox Code Playgroud)

请解释一下这段代码的用途?还有什么*p-*q意思呢?另外,它是如何在Java中实现的?

Osc*_*Ryz 25

请解释一下这段代码的作用是什么?

它比较了两个词

还有什么意思 *p-*q

这意味着,告诉我指针p指向的char的值,并将其放在指针q指向的char上.

以及如何在java中实现它?

*p-*q部分?就这个.

// char c
// char k
c - k;
Run Code Online (Sandbox Code Playgroud)

如果你的意思是整个功能,这可以帮助你开始:

int wordcomp( String sp, String sq) {
   int n = k; // I have no idea what is this for
   int pi = 0, qi = 0;
   for ( ; sp.charAt(pi) == sq.charAt(qi) ; pi++, qi++) {
      if (  sp.length()==pi && --n == 0 )
         return 0;
  }
  return sp.charAt(pi) - sq.charAt(qi);
Run Code Online (Sandbox Code Playgroud)

您需要验证严格的限制.

  • yey!3年后逆转:) (8认同)