所以,我有几个url存储在名为url
的char指针数组中我想在每个网址上调用wget,但我一直收到以下错误。
invalid operands to binary + (have 'char *' and 'char *')
我的程序在C
system("wget" + url[0]);
答案 0 :(得分:2)
在C中,+
运算符不适用于字符串。要连接两个字符串并将结果传递给system()
,您可以执行以下操作:
char buffer[ENOUGH_SPACE_TO_HOLD_CONCATENATED_RESULT]; /* Destination buffer for our command */
snprintf(buffer, sizeof(buffer), "wget %s", url[0]); /* You can also use strcat and friends for this step */
system(buffer); /* Now execute it */
答案 1 :(得分:0)
在C中,您无法使用+
运算符连接两个字符串。请改用strncat
:
NAME
strcat, strncat - concatenate two strings
SYNOPSIS
#include <string.h>
char *strcat(char *dest, const char *src);
char *strncat(char *dest, const char *src, size_t n);
DESCRIPTION
The strcat() function appends the src string to the dest string, over‐
writing the null byte ('\0') at the end of dest, and then adds a termi‐
nating null byte. The strings may not overlap, and the dest string
must have enough space for the result.
The strncat() function is similar, except that
* it will use at most n characters from src; and
* src does not need to be null-terminated if it contains n or more
characters.
As with strcat(), the resulting string in dest is always null-termi‐
nated.
If src contains n or more characters, strncat() writes n+1 characters
to dest (n from src plus the terminating null byte). Therefore, the
size of dest must be at least strlen(dest)+n+1.
谷歌搜索“strncat”会给你很多关于它如何使用的例子。