0

在 C 中,我需要从中获取一个字符串参数argv []并将其放入另一个数组中,以便我可以遍历字符。我该怎么做呢?

(这是为了实现 Veginre Cypher 仅供参考)

4

3 回答 3

0

如果要遍历nth 条目的字符argv

int i;
int len = strlen(argv[n]);
for (i = 0; i < len; i++)
    // do something with argv[n][i]

如果您想先将它们复制到其他地方(这很可能没有必要),请使用strcpy()or strdup()

于 2013-04-14T20:56:12.793 回答
0

您不需要将其复制到单独的字符串中。

方法如下:

// argv is array of strings, or array of array of chars
int main( int argc, char** argv ) // here argv is an array of strings
{
    int i = 0;
    while( 1 )
    {
        if( argv[1][i] == '\0' )
            break; // argv[1][i] <- Current character of the first cmd-line arg
        i++
    }
}

或者如果您真的想复制它以使用简单的字符串,只需设置一个指向字符串开头的指针,如下所示:

char* firstArgument = argv[n]; // where n is the nth command line argument
于 2013-04-14T21:04:19.430 回答
0

您不需要复制字符串。你没有声明你正在改变字符串(虽然 argv 是可修改的,但我可能会不理会它),所以只需迭代它。

int main(int argc, char *argv[])
{
    if(argc < some_min_value) {
        print_usage();
        return -1;
    }

    for(int i = 0; argv[str_idx][i]; ++i) {
        char c = argv[str_idx][i];
        /* do something with c */
    }

    return 0;
}
于 2013-04-14T21:06:33.547 回答