gpt4 book ai didi

c - 当 scanf ("%s",s) 时会发生什么?遇到两个或多个词而只提供一个变量?

转载 作者:太空宇宙 更新时间:2023-11-04 01:27:26 24 4
gpt4 key购买 nike

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);
}

最佳答案

%s 数据规范的

scanf 读取第一个空格符号(' '、'\n' 或 '\t')之前的字符。如果您想读取带空格的字符串(超过两个单词),请使用 fgets 函数,这比 'gets' 更安全,因为您可以设置可以在内存中分配的最大字符数,并且避免段错误。

关于c - 当 scanf ("%s",s) 时会发生什么?遇到两个或多个词而只提供一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28601447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com