我可以做这样的代码:
char *p;
p = User_input;
是否可以在运行时将字符串分配给p
?
答案 0 :(得分:1)
当然可以,但c中没有string
,我认为你的意思是char *
,就像
char *user_input = malloc(128);
scanf("%s", userinput);
p = user_input;
答案 1 :(得分:1)
你必须用malloc分配内存。然后,您可以使用strcpy将字符串分配给分配的内存。
答案 2 :(得分:1)
当然可以。请注意,此赋值仅将指针(地址)复制到新变量。它不会复制字符串本身。
如果这不符合您的要求,您还有其他选择:
char buf[1000];
strcpy(buf, User_input);
或
char *p;
p = strdup(User_input);
答案 3 :(得分:1)
避免危险buffer overflows with scanf。例如,使用fgets读取整行或scanf,并使用限制说明符"%100s"
。
char buffer[128];
scanf("%127s", buffer);
char* my_input = strdup(buffer);