我已经尝试了大约一个小时,并在网上查看了其他地方,但仍然无法完成我想要做的事情。这可能很简单,但我已经有很长一段时间没有用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 );
因此,既然args
是char*
,"r"
会给你一个char*
,你应该试试:
/* since you're learning, print out what this thing does */
#include <stdio.h>
printf("Output: %dn",strcmp(args,"r"));