C-将文本作为参数

时间:2017-02-10 05:16:25

标签: c arrays string parameters

db

我的目标是编写一个名为" contains"这需要两个文本字符串作为参数并打印" true"然后换行。

如果第二个字符串完全包含在第一个字符串中,或​​者" false"然后是换行符。 我认为我的逻辑是正确的。 我的问题是如何将这两个字符串作为参数传递。

2 个答案:

答案 0 :(得分:0)

在main中初始化变量。如果你想把它作为参数,那么在其他函数中写入逻辑,并通过将两个字符串作为变量传递并在主函数中定义它们来调用它。

答案 1 :(得分:0)

这两个"标准" main的参数对此负责。

  • argc ...命令行参数的数量
  • argv ...带命令行参数的字符串数组。

因此,argv [0]提供程序的名称。

在你的情况下:

#include <stdio.h> /* for printf, fprintf */
#include <string.h> /* for strlen */

int main(int argc, char **argv)
{
  char *str1, *str2;
  /* check for min. number of required args. */
  if (argc <= 2) {
    fprintf(stderr, "ERROR! At least one arg. missing!\n");
    return -1;
  }
  /* get args. */
  str1 = argv[1]; str2 = argv[2];
  /* (the strings are 0-terminated) */
  printf("argv[1]: '%s' (length: %d)\n", str1, strlen(str1));
  printf("argv[2]: '%s' (length: %d)\n", str2, strlen(str2));
  /* process data */
  /* done */
  return 0;
}

编译并运行:

$ gcc -o testArgs ./testArgs.c

$ ./testArgs
ERROR! At least one arg. missing!

$ ./testArgs Hello "Hello world"
argv[1]: 'Hello' (length: 5)
argv[2]: 'Hello world' (length: 11)

更多信息:

  • 命令行参数:google c main argc argv
  • 使用以0结尾的字符串:google c strlen