C语言输入一个中间代有空格的字符串,为什么不可以用scanf? 急急急 5
7个回答
展开全部
因为scanf是以空白符(空格、制表符、换行等等)为结束标志的,当遇到空白符是就会结束一次输入,如果你需要读取空格的话可以使用gets或者getchar
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf的话读到空格那么这个字符串就结束了。如果你想读进带空格的字符串就用gets();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为C语言的字符串是以'\0'作为结束符为标记的,所以当有空格的时候,scanf就会忽略后面的字符串的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有了char
a[10];,那么a就是这个数组的第一个元素的指针,&a就是这个数组的指针;因为一维数组的第一个元素的指针和这个数组的指针是同一个地址,区别是a+1指向a[1],而&a+1就指向a[10]了(这里已越界了)。但&a和a的"值"是相同的,只是类型不同。c调用函数时,实参的类型都会被强制为形参的类型,scanf("%s",
&a)或scanf("%s",
a)中要求参数是char
*型指针,那么&a尽管是char
**类型,但被强行转换为char
*型了……
a[10];,那么a就是这个数组的第一个元素的指针,&a就是这个数组的指针;因为一维数组的第一个元素的指针和这个数组的指针是同一个地址,区别是a+1指向a[1],而&a+1就指向a[10]了(这里已越界了)。但&a和a的"值"是相同的,只是类型不同。c调用函数时,实参的类型都会被强制为形参的类型,scanf("%s",
&a)或scanf("%s",
a)中要求参数是char
*型指针,那么&a尽管是char
**类型,但被强行转换为char
*型了……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询