c - 请解释一下这个比较字符串的方法

标签 c pointers string

假设某个k是任意数字=2k=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;  
}      

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

最佳答案

please explain me what does this code do?

它比较两个单词

also what means *p-*q?

这意味着,告诉我指针 p 所指向的 char 的值,并将其保留给指针 q 所指向的 char。

and also how implement it in java?

*p-*q 部分?就是这样。

// char c
// char k
c - k;

如果您指的是整个功能,这可以帮助您入门:

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);

您需要严格验证限制。

关于c - 请解释一下这个比较字符串的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2977219/

相关文章:

C++ 取消引用 void 指针,将 int ptr 转换为 void ptr

c - malloc 和 realloc 的区别?

javascript - 查找并替换字符串中第 n 次出现的 [bracketed] 表达式

c - System V AMD64 ABI 浮点可变参数顺序

c - OpenCL Simple “Hello World!” 程序编译正确但在执行时吐出垃圾。但是安装了 Nvidia 驱动程序

c++ - 二分匹配

c - 读取并收集文本文件中的变量

c++ - 使用对象指针时访问冲突读取

java - 检查一个字符串是否只包含一组字母

c# - 将 appsetting 值从字符串解析为字符串数组