c-使用strcmp比较字符指针和文字



我已经尝试了大约一个小时,并在网上查看了其他地方,但仍然无法完成我想要做的事情。这可能很简单,但我已经有很长一段时间没有用C编写代码了,所以我可能遗漏了一些东西。无论如何,我想使用strcmp来比较一个名为char*args的变量和一个像"qw"这样的文字。

我在main中传递了一个函数,这个args变量,当我把它拿回来时,我想这样比较:也许我只是在用一种愚蠢的方式做这件事。

char *args;
char **svdArray;
int keepTrack = 0;
int beforeTrack = 0;
svdArray = malloc(5*sizeof(char*));
while (1)
{           
if(!(strcmp(args[0], "r")) && (!strcmp(args[0], "rr")))
  {
    svdArray[keepTrack] = args[0];

     keepTrack++;
  }

我只想发生的是,如果我的args[0]中除了rr或r之外还有其他内容,我想执行if语句中的代码。然而,到目前为止,水流从未进入其中,我不知道为什么。

任何帮助都将不胜感激!!!

strcmp()对两个字符串进行整体比较。

要只测试零件,请使用strstr(),例如:

if (strstr(args, "r")) || strstr(args, "rr")))
{
  svdArray[keepTrack] = args;
  keepTrack++;
}

您需要将char*传递给strcmp,就像args一样。

这里是strcmp的原型:

int strcmp ( const char * str1, const char * str2 );

因此,既然argschar*"r"会给你一个char*,你应该试试:

/* since you're learning, print out what this thing does */
#include <stdio.h>
printf("Output: %dn",strcmp(args,"r"));

最新更新