如何检查给定参数是否为另一个给定参数的子串

时间:2018-07-16 18:22:42

标签: c arguments

在C编程中,传递参数是通过

完成的
int main (int argc, char** argv) {
    // code
}

我知道argc会计算有多少个参数,而argv是将这些参数存储在char*数组中的位置。我需要一个算法的帮助,该算法可以找到给定的参数是否是将来参数的子字符串,但是传递的这些参数不一定必须是字符串。

例如,如果此文件名为main,而我输入了main lo 17 flow 18 19 flower,则输出应类似于:

lo is substring of flow lo is substring of flower flow is substring of flower

我刚刚开始自己​​学习c编程,因此我很难操纵char* argv中的参数。 char*是否是一个存储数组的数组?就像上面的示例一样,flow位于数组的索引三,但是flow本身是char的数组,因此字母'f'位于索引0?如何找到一个参数是否是另一个后面的参数的子字符串?

2 个答案:

答案 0 :(得分:1)

以下是如何将strstrchar **argv一起使用: 假设argv[1] = "lo"argv[2] = "flower"。然后,

char *ptr = strstr(argv[2], argv[1]);
printf("%s", ptr);

printf语句将打印"lower"

if (ptr == NULL) {
    /* string was not found */
} else {
    /* string was found */
}

答案 1 :(得分:-1)

您可以使用strstr()在另一个字符串中搜索一个字符串。