Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在函数中使用get()在char*ch中指定字符串?_C_Function_Pointers_Char_Gets - Fatal编程技术网

如何在函数中使用get()在char*ch中指定字符串?

如何在函数中使用get()在char*ch中指定字符串?,c,function,pointers,char,gets,C,Function,Pointers,Char,Gets,我怎样才能写得到???; 多谢各位 void getStr(**temp){ gets(???); } void main(){ char *ch; printf("Enter a string: \n"); getStr(&ch); printf("main: %s\n", ch); } ---输出--- 输入一个字符串: abc main:abc永远不要使用get函数。它本质上是不安全的,因为没有办法防止用户输入超出您准备接受范围的数据。事实上,20

我怎样才能写得到???; 多谢各位

void getStr(**temp){
   gets(???);
}

void main(){
   char *ch;
   printf("Enter a string: \n");
   getStr(&ch);
   printf("main: %s\n", ch);
}
---输出--- 输入一个字符串: abc main:abc

永远不要使用get函数。它本质上是不安全的,因为没有办法防止用户输入超出您准备接受范围的数据。事实上,2011年ISO C标准将其从语言中删除

您可能应该改用FGET。使用它有点复杂,因为它在字符串中保留了“\n”行终止符,但它允许您指定要读取的最大字符数

您的getStr函数可能不需要接受char**参数;char*就可以了,因为它不会修改指针,只是将数据读入指针指向的数组

您需要分配一个字符数组来将数据读入。您可以声明数组对象:

char line[200]; // for example
或者使用malloc来分配空间

还有一件事:void main不正确。编译器可以接受它,但没有充分的理由使用它。正确的定义是int mainvoid。如果你有一本书告诉你使用voidmain,它是由一个不太懂C语言的人写的,可能会有更严重的错误


看一看。

欢迎来到SO!你读过gets函数了吗?有什么不清楚的?