首页 > 解决方案 > 比较两个字符串,如 strcmp 错误错误:一元'*'的无效类型参数(有'int')

问题描述

我正在尝试编写一个 C 函数来比较字符串,而不是指针相等,而是内容相等。但我得到一个错误

错误:一元'*'的无效类型参数(有'int')

这是我的代码:

#include <stdio.h>
#include <stdlib.h>

int stringcompare(char * str1, char * str2, int strSize){
  char * word1 = str1;
  char * word2 = str2;
  
  for (int i = 0; i < strSize; i++) {
    if (*word1[i] != *word2[i]) {
      printf("The strings are DIFFERENT!");
      return 1;
    }
  }
  printf("The strings are a MATCH!");
  return 0;
}

int main(void){
  char * str1 = "Hello World!";
  char * str2 = "Hello World!";
  stringcompare(str1, str2, 13);
}

标签: cpointerscomparisonc-strings

解决方案


对于由 指向的数组,*ptr位置处的元素i由 取消引用*(ptr + i),这相当于ptr[i]and not *ptr[i]


推荐阅读