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

标签 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 语句中执行代码。然而,到目前为止,流量从未进入它,我不知道为什么。

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

最佳答案

strcmp() 比较两个字符串。

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

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

关于c - 使用 strcmp 比较字符指针和文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17350338/

相关文章:

c - 具有相同主体和不同参数的两个不同函数在同一内存位置返回值

c++ - 指针类型引用

c++ - 值(value)观出现偏差?

编译器错误可能与 typedef 有关

c++ - C++比较字符串的字符

java - charAt 方法返回一个整数。需要转成int

c - 暂停远程进程的执行(C、Windows)

在嵌入式 C 中创建寄存器的可迭代列表

c - 为什么 scanf() 总是等待输入

pointers - 指针别名