黑马程序员技术交流社区

标题: 用scanf接收带空格的字符串的小方法 [打印本页]

作者: 从┧靇┟开始    时间: 2014-5-30 23:55
标题: 用scanf接收带空格的字符串的小方法
本帖最后由 从┧靇┟开始 于 2014-5-31 09:56 编辑

可以输入空格了么?
  1. #include<stdio.h>
  2. int main(void)
  3. {
  4.     char str[100];
  5.     scanf("%90[^\n]", str); // 谁能解释坐等大神。。。
  6.     printf("%s\n", str);
  7.     return 0;
  8. }
复制代码

作者: ★Joean_Zhou    时间: 2014-5-31 08:27
你看可不可以scanf("%s",str);呢
作者: 夏沫的黄昏′    时间: 2014-5-31 09:34
你就当成是语法,。。 这东西 说实话没必要知道为什么
作者: 从┧靇┟开始    时间: 2014-5-31 10:13
恩 能用就行 不纠结了
作者: 化学反应    时间: 2014-5-31 11:55
scanf("%90[^\n]", str);这行指的是可输入最多90个除换行符以外的任何字符,遇到换行符就不再接受输入了。
看看这篇博文解释的会比较详细,地址:
http://blog.csdn.net/wesweeky/article/details/6439777
作者: 化学反应    时间: 2014-5-31 11:57
C语言博大精深,遇到一些自己没见过的使用方法,一定追究到底,不要以为记住就高枕无忧了。
作者: 从┧靇┟开始    时间: 2014-5-31 12:04
化学反应 发表于 2014-5-31 11:57
C语言博大精深,遇到一些自己没见过的使用方法,一定追究到底,不要以为记住就高枕无忧了。 ...

谢谢你 很详细,差点错过了 一段有用的知识 哈
作者: mingjixiaohui    时间: 2014-5-31 13:48
scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数的一般形式为:
    scanf(“格式控制字符串”, 地址表列);
但不能显示非格式字符串,也就是不能显示提示字符串。

要想逐个输出数组中的字符可以这样做:

#include<stdio.h>
int main(void)
{
   int i, str[100];
    scanf("%d",&str[i]);   //这里必须是格式控制字符串,如:%c,%d,%f等等,但是要和你上面的变量类型统一
  for(i=1;i<100;i++)//对数组进行循环
    printf("%d\n", str[i]);
    return 0;
}
作者: tony_ygz    时间: 2014-5-31 17:02
一起学习了
作者: xiaodixing    时间: 2014-5-31 17:23
长知识了
作者: ★Joean_Zhou    时间: 2014-5-31 20:34
mingjixiaohui 发表于 2014-5-31 13:48
scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数的一般形式 ...

学习了。。。嘿嘿!!
作者: mingjixiaohui    时间: 2014-5-31 20:41
★Joean_Zhou 发表于 2014-5-31 20:34
学习了。。。嘿嘿!!

哪有哪有一起学习咯
作者: oassuperhan    时间: 2014-6-1 11:19
感觉没有必要在scanf函数上面耗费太多精力,不说gets()函数更加方便直接,ios里基本也不用这个的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2