楼主

发表于: 2011-01-14 15:39:55

#include <stdio.h>

int main(void)
{
int i;
char a[5];

scanf("%s", a);
printf("%s\n", a);

return 0;

}

运行输入hello world
回车
则输出的只是空格之前的部分,怎样把空格之后的部分也输出呢?

2楼

回复于: 2011-01-14 17:27:23

谁说scanf不能做到?

#include <stdio.h>
int main()
{
char str[128];
scanf( "%[^\n]", str );
printf( "%s\n", str );
return 0;
}

scanf中的正则表达式

1、定制自己的扫描集 %[abc]、%[a-z]、%[^abc]、%[^a-z],比isdigit()、isalpha()更加灵活。[]内是匹配的字符,^表示求反集。
int i;
char str[80], str2[80];
// scanf("%d%[abc]%s", &i, str, str2);
// printf("%d %s %s\n",i,str,str2);
// scanf("%[a-zA-Z0-9]", str);
// scanf("%[^abce]", str);
scanf("%[^a-z]", str);
printf("%s\n",str);

2、读入一个地址并显示内存地址的内容
int main(void)
{
char ch='c';
printf("%p\n", &ch); // print the address of ch.
char *p;
cout<<"Enter an address: ";
scanf("%p", &p); //input the address displayed above
printf("Value at location %p is %c\n",p,*p);
return 0;
}

3、丢弃不想要的空白符:scanf("%c %c");

4、控制字符串中的非空白符:导致scanf()读入并丢弃输入流中的一个匹配字符。"%d,%d";

5、压缩输入:在格式码前加上*,则用户就可以告诉scanf()读这个域,但不把它赋予任何变量。
scanf("%c%*c, &ch); 使用此方法可以在字符处理时吃掉多余的回车。

例1:从<sip:tom@172.18.1.133>中提取tom
const char* url = "<sip:tom@172.18.1.133>";
char uri[10] = {0};
sscanf(url, "%*[^:]:%[^@]", uri);
cout << uri << endl;

例2:从iios/12DDWDFF@122中提取 12DDWDFF
const char* s = "iios/12DDWDFF@122";
char buf[20];
sscanf(s, "%*[^/]/%[^@]", buf);
cout << buf << endl;

3楼

回复于: 2011-01-14 21:15:47

int t[999];
int sum=0;
while(scanf("%c",&t[sum++])!=EOF);

c语言中怎样用scanf()读入带空格的字符串?的更多相关文章

  1. GO语言学习笔记1-输入带空格的字符串

    最近开始学习GO语言,并做了一些编程练习.有道题要输入带空格的字符串,这在C/C++中很容易实现,但GO中好像并不那么容易.学过C/C++的可能都知道,在C中可以使用gets()函数,在C++可以使用 ...

  2. scanf()读取带空格的字符串

    #include <stdio.h> int main() { char str[128]; scanf( "%[^\n]", str ); printf( " ...

  3. 在动态THML语句中调用JS函数传递带空格参数的问题

    刚刚遇到一个问题,调用js函数的参数里带空格,造成调用失败的问题.   部分代码如下: html+="<div><a href=javascript:confirm(&qu ...

  4. 在C语言中连续使用scanf()函数出现的问题

    #include<stdio.h> int main() { ],*c; printf("input string:\n"); scanf("%c" ...

  5. C/C++语言中#的神奇作用:把宏参数字符串化/贴合宏参数

    宏中"#"和"##"的用法 一.一般用法   我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. #define STR(s)      #s # ...

  6. scanf读入有空格字符串

    当不支持gets时,getline又比较慢,可以使用scarf("%[^\n]s", str);来读入以换行表示读完的字符串,其中[^char]表示以char为结束.

  7. JS中正则匹配开头不带空格,结尾也不带空格的字符串

    在做项目的时候,要求限制SSID的长度.以及开头和结尾不能是空格. var reg = /^\S.{0,30}\S$/ "$$$  $$".match(reg);   ==> ...

  8. C/C++ 中带空格字符串输入的一些小trick

    今天在重温 C++ 的时候发现自己存在的一些问题,特此记录下来. 我们可以看一下下面这段代码: #include <iostream> #include <cstdio> #i ...

  9. Go语言中的单引号、双引号、反引号

    =Start= 搜索关键字: golang single quotes golang double quotes golang back quotes 参考结果: 结论写在最前:在Go语言中不倾向于使 ...

随机推荐

  1. 数论E - Biorhythms(中国剩余定理,一水)

    E - Biorhythms Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Subm ...

  2. Using an open debug interconnect model to simplify embedded systems design

    Using an open debug interconnect model to simplify embedded systems design Tom Cunningham, Freescale ...

  3. How to create a Maven web app and deploy to Tomcat - fast

    原文地址: http://www.blogjava.net/sealyu/archive/2010/01/08/308706.html Procedure Prerequisites and Assu ...

  4. Java:volatile 关键字的一点理解

    背景 学了六年C#,一直没有使用过 volatile,对多线程编程也是偶尔才会使用,这次学习 Java 又遇到了 volatile,准备稍微深入的了解一下. volatile 的作用? 几乎所有支持这 ...

  5. [翻译] ColourClock 将时间值转换成背景色

    ColourClock 将时间值转换成背景色 https://github.com/bennyguitar/ColourClock This project converts Time to Hex/ ...

  6. [翻译] TLMotionEffect 重力感应

    TLMotionEffect  重力感应 https://github.com/jvenegas/TLMotionEffect This category adds a motion effect t ...

  7. c++ 哈希表(hash表)

    一.定义 Hash表,也称散列表.一般应用于有大量"动态"的插入(删除)和查找操作的一类问题.(如果是"静态"的,通常可以先对数据排序,查找时就可以用" ...

  8. ZeroMQZeroMQ研究与应用分析

    1  ZeroMQ概述 ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型.连接处理.帧.甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字.ZeroMQ是网络通信中新的一层,介于应用 ...

  9. Windows之权限讲解

    windows中,权限指的是不同账户对文件,文件夹,注册表等的访问能力.在windows中,为不同的账户设置权限很重要,可以防止重要文件被其他人所修改,使系统崩溃. 1权限概念 我们可以在控制面板中设 ...

  10. CC+语言 struct 深层探索——CC + language struct deep exploration

    1        struct 的巨大作用 面对一个人的大型C/C++程序时,只看其对struct 的使用情况我们就可以对其编写者的编程经验进行评估.因为一个大型的C/C++程序,势必要涉及一些(甚至 ...