簡體   English   中英

C-字符串數組轉換為char數組

[英]C - Array of strings to an array of char

在C語言中,我需要從argv []獲取一個字符串參數,並將其放入另一個數組中,以便可以遍歷char。 我該怎么做呢?

(這是為了實施Veginere Cypher FYI)

如果要遍歷argv中第n個條目的字符:

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

如果要先將它們復制到其他地方(這很有可能不是必須的),請使用strcpy()strdup()

您無需將其復制到單獨的字符串中。

方法如下:

// 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

您不需要復制字符串。 您沒有聲明要對字符串進行突變(盡管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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM