0

我已经尝试了大约一个小时,并在网上查看了其他地方,但仍然无法完成我想要做的事情。这可能应该很简单,但我已经有一段时间没有用 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 语句中执行代码。但是到目前为止,流程从未进入过它,我不知道为什么。

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

4

2 回答 2

2

strcmp()比较两个字符串。

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

if (strstr(args, "r")) || strstr(args, "rr")))
{
  svdArray[keepTrack] = args;
  keepTrack++;
}
于 2013-06-27T18:19:56.373 回答
0

你需要传递一个char*to strcmp,比如args

这是strcmpfrom here的原型:

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

所以既然args是 achar*并且"r"会给你 achar*你应该尝试:

/* since you're learning, print out what this thing does */
#include <stdio.h>
printf("Output: %d\n",strcmp(args,"r"));
于 2013-06-27T18:16:23.597 回答