如何在函数中使用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函数了吗?有什么不清楚的?