如何将参数分配给字符串数组?

问题描述:

int main(int argc, char **argv) { 
    char username[256]; 
    username = ?; 
} 

感谢〜如何将参数分配给字符串数组?

+4

如果我通过了257个字符怎么办? – SLaks 2011-01-11 04:03:01

你可能想使username是一个指针,那么你可以给它分配:

int 
main(int argc, const char *const *argv) 
{ 
    const char *username; 
    if (argc >= 2) 
     username = argv[1]; 
    else 
    { 
     fprintf(stderr, "usage: %s username ...\n", argv[0]); 
     return 2; 
    } 
    /* ... */ 
} 

但如果你真的要复制的数组的内容,您正在寻找strncpy

如果要复制另一个字符串(如的argv [1]),那么你可能想使用函数strncpy(http://strncpy.org/)。如果你想从stdin输入它,那么http://en.wikipedia.org/wiki/Fgets可能是一个更好的选择。