在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;}谢谢你的帮助!