系统wget是一个变量类型

时间:2011-05-19 06:44:55

标签: c wget

所以,我有几个url存储在名为url

的char指针数组中

我想在每个网址上调用wget,但我一直收到以下错误。

invalid operands to binary + (have 'char *' and 'char *')

我的程序在C

system("wget" + url[0]);

2 个答案:

答案 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”会给你很多关于它如何使用的例子。