比较和定义C中的字符串

Ad *_*nks 0 c

我查看了其他答案,但未能找到答案.
我想将字符串的最后一个字符与文字"%"进行比较.

  strcpy(ch, fName[strlen(fName) - 1]);
  printf("%d\n", strcmp(ch, "%"));
Run Code Online (Sandbox Code Playgroud)

我想用cl命令行编译器(MicroSoft)编译,并获得警告:

cbx_test1.c(43) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char'
cbx_test1.c(43) : warning C4024: 'strcpy' : different types for formal and actual parameter 2
Run Code Online (Sandbox Code Playgroud)

我的代码有问题,这是显而易见的.但是什么?

Sou*_*osh 7

在您的情况下,问题fName[strlen(fName) - 1]是,类型char,而不是const char *,根据需要strcpy().另外,我们不知道ch这里使用的类型.

考虑fName是一个类型的数组char,你想要的是

if ('%' == fName[strlen(fName)-1])
   //do something
Run Code Online (Sandbox Code Playgroud)