Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中搜索参数中的单词_C_Arguments - Fatal编程技术网

在C中搜索参数中的单词

在C中搜索参数中的单词,c,arguments,C,Arguments,我有以下代码: host = argv[1]; if ((argv[1]) = "http://"); {{ host = host + 7; } 主机是通过参数输入的url,可以是或www.google.com 因此,我想检查参数是否包含“http://”,并通过删除前7个字符来删除它。c中是否有这样的函数?尝试以下操作: #include <stdio.h> #include <string.h> int main(int argc, cha

我有以下代码:

  host = argv[1];

  if ((argv[1]) = "http://"); {{
    host = host + 7;
  }
主机是通过参数输入的url,可以是或www.google.com

因此,我想检查参数是否包含“http://”,并通过删除前7个字符来删除它。c中是否有这样的函数?

尝试以下操作:

#include <stdio.h>
#include <string.h>

int main(int argc, char **argv){
  char *host = argv[1];
  if (strncmp(argv[1], "http://", strlen(argv[1])) == 0) {
      host = host + 7;
  }
  printf("%s\n", host);
}
#包括
#包括
int main(int argc,字符**argv){
char*host=argv[1];
如果(strncmp(argv[1],“http://”,strlen(argv[1]))==0){
主机=主机+7;
}
printf(“%s\n”,主机);
}

比较字符指针不起作用。如果您只想比较前7个字符,请使用
strcmp()
(或
strncmp()
)可能重复的感谢您的快速回复,但我需要使用主机变量,因为这是一个长程序的一部分,所以我只想检查参数中是否有“http://”,并按我的方式将其剪切为host=host+7;http://始终是参数的开头,所以这肯定是前7个字符。我明白了!是的,你的方法也可以做到这一点,而且可以说比我的方法更简洁(我喜欢显式指针算法)。strstr()就是您要找的!在那里,编辑了答案以反映您的代码以及您希望使用它的方式。实际上,在这种情况下,strncmp更好,正如@squemish ossifrage所说的,因为您只想比较字符串中有限数量的字符。我在这里完成了工作代码:if((strncmp(argv[1],“http:/”,7))==0{host=host+7;}谢谢你的帮助!