【发布时间】:2015-02-19 17:02:27
【问题描述】:
当scanf("%s",s);(获取不完美字符串的多种方法之一)在输入中遇到空格时,它会尝试将其放入另一个变量中,对吗?但是,如果在这种情况下只提供一个变量会发生什么?
还有什么其他方法可以输入字符串?哪个是最简单或最好的,哪个不会像gets(s); 函数那样出现问题?
这是我现在的s_insert 函数:
// pointer to pointer needed when you allocate memory in the function
void s_insert(char **string_one){ //inserts string (loss of original data)
*string_one=(char*)malloc(200);
fgets (*string_one,200,stdin);
}
【问题讨论】:
-
您当前的函数实现不起作用并且它还会泄漏内存。
-
@TheParamagneticCroissant 缺乏记忆是什么意思?为什么它不能这样工作?
-
当您更改问题时,请尝试在编辑副标题后添加新信息而不更改问题的原始文本(这只是对未来的建议)
-
查看cplusplus.com/reference/cstdlib/malloc 的示例,了解如何确保成功分配字符串的内存。
-
我应该如何调用新函数?我以前用过
s_insert(string);,但现在已经不行了!