use*_*267 4 c arrays string copying command-line-arguments
我想复制字符串,argv[0]但我不知道如何获得大小argv[0].
这该怎么做?
int main(int argc, char* argv[])
{
char str[20];
if(argc>0)
memcpy(str, argv[0], sizeof(argv[0]));
}
Run Code Online (Sandbox Code Playgroud)
既然argv[0]是一个字符串,请使用strlen.
#include <string.h>
size_t length = strlen (argv[0]) + 1;
memcpy (str, argv[0], length);
Run Code Online (Sandbox Code Playgroud)
顺便说一下,你也可以使用strcpy,这更适合字符串.
#include <string.h>
strcpy (str, argv[0]);
Run Code Online (Sandbox Code Playgroud)
在每种情况下,为了确保您的副本不会溢出,您应该检查大小str是否足够.
if (sizeof str >= length)
{
/* Do the copy. */
}
else
{
/* Report an error, or use dynamic allocation. */
}
Run Code Online (Sandbox Code Playgroud)