使用strcmp比较char指针和文字

时间:2013-06-27 18:11:34

标签: c pointers char 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语句中执行代码。但是到目前为止流量从未进入过,我不知道为什么。

非常感谢任何帮助!!!

2 个答案:

答案 0 :(得分:2)

strcmp()比较两个字符串。

仅测试部件使用strstr(),例如:

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

答案 1 :(得分:0)

您需要将char*传递给strcmp,例如args

以下是来自herestrcmp的原型:

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: %d\n",strcmp(args,"r"));