我已经尝试了大约一个小时,并在网上看了其他地方,但仍然无法完成我正在尝试做的事情。这应该是一些简单的东西,但我在相当长一段时间内没有用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语句中执行代码。但是到目前为止流量从未进入过,我不知道为什么。
非常感谢任何帮助!!!
答案 0 :(得分:2)
strcmp()
比较两个字符串。
仅测试部件使用strstr()
,例如:
if (strstr(args, "r")) || strstr(args, "rr")))
{
svdArray[keepTrack] = args;
keepTrack++;
}
答案 1 :(得分:0)
您需要将char*
传递给strcmp
,例如args
。
以下是来自here的strcmp
的原型:
int strcmp ( const char * str1, const char * str2 );
因为args
是char*
而"r"
会给你一个char*
,你应该尝试:
/* since you're learning, print out what this thing does */
#include <stdio.h>
printf("Output: %d\n",strcmp(args,"r"));