`
qingwu
  • 浏览: 11219 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于scanf()不能正确接收有空格符的字符串的问题

 
阅读更多

写了个小程序,用scanf输入一串字符串,比如 hello world ,存到char[]型数组中,strlen(char)所得的长度是5,后面的world被忽略了。

要不被忽略,可以使用正则表达式,[^x] 匹配x以外的任何字符。那么这里可以用

scanf("%[^\n]",char); //表示输入除了\n之外的字符都放到char中。暂且这么认为吧。我也是刚开始学。

分享到:
评论

相关推荐

    统计一组字符串中字母,数字,空格的个数(C语言原代码)

    标题中的“统计一组字符串中字母,数字,空格的个数”是指在C语言编程中实现一个程序,用于计算用户输入的一串字符中包含的字母、数字和空格的数量。这个程序可以帮助理解基本的字符处理和计数逻辑。 在描述中,...

    关于scanf,....docx

    例如,scanf 函数不能接收空白符(回车、空格、Tab 键等),这意味着,如果用户输入的数据中包含空白符,scanf 函数将无法正确地读取数据。为了解决这个问题,可以使用空白符作为分隔符,分开输入多组数据。 此外,...

    sscanf练习详解-分割字符串

    这里,`"%19s"`是转换说明符,它告诉`sscanf`读取最多19个字符(包括空格)到相应的字符串变量中,并且不跨越字符串边界,以避免缓冲区溢出。`%s`用于读取和分离字符串,双引号`\"`用于匹配输入字符串中的双引号。 ...

    c语言获取用户输入字符串是scanf和gets的区别详解

    gets(s)函数与 scanf(“%s”,&s) 相似,但不完全相同,使用scanf(“%s”,&s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的...

    C语言中字符串的处理方式[归类].pdf

    另外,`gets`函数也被用于读取字符串,但已不再推荐使用,因为它不检查缓冲区溢出,可能导致安全问题。更安全的选择是使用`fgets`,它可以指定接收的字符数,防止溢出。 在处理C语言字符串时,理解字符数组和指针的...

    c语言基础字符串PPT学习教案.pptx

    - `scanf()`函数可以用来读取字符串,使用`%s`格式符,但不支持读取包含空格的字符串。例如:`scanf("%s", name)`。 - `gets()`函数可以读取一整行输入,包括空格,并将换行符替换为'\0',如`gets(name)`。 - `...

    计算机二级《C语言》辅导笔记:字符串.docx

    另外,`gets`函数可以接收包含空格的输入,而`puts`函数会在输出字符串后添加一个换行符。然而,`gets`函数由于存在缓冲区溢出的风险,已不再推荐使用,现在通常使用`fgets`替代。 最后,【考点 5】介绍了四个常用...

    C语言scanf用法及有用技巧

    这种写法可以读取一行完整的字符串,直到遇到换行符`\n`为止,包括空格和制表符等空白字符。 #### 五、注意事项 - 在使用`scanf`时,需要注意输入格式与`format`指定的格式严格一致,否则可能导致程序行为异常。 - ...

    scanf的用法

    **问题**: `scanf`函数不能正确接收带有空格的字符串? 当使用`%s`来读取字符串时,`scanf`会停止读取直到遇到空格、回车或跳格键。这意味着如果你想要读取含有空格的字符串,需要使用其他格式字符,比如`%[^\n]`来...

    222018321062006 宋行健(strcmp排序字符串)1

    `scanf()`函数用于从标准输入读取字符串,它会读取空格前的所有字符,直到遇到换行符或指定的终止字符。在本例中,使用`scanf("%s", arr[i])`读取用户输入的字符串,并存储到动态分配的内存空间中。 2. **动态内存...

    C语言中getchar, gets, 和 scanf 三种不同函数的区别

    虽然`scanf()`功能强大,但是如果不正确地使用格式字符串,可能会导致输入不匹配或者数据溢出的问题。因此,使用`scanf()`时需要格外谨慎。 总的来说,`getchar()`适用于简单的单字符输入,`fgets()`(代替`gets()`...

    C语言 中scanf详解.pdf

    对于包含空格的字符串输入,可以使用`%[^\n]`,这将读取直到遇到换行符为止。 `fflush(stdin)`常被用来试图清空输入缓冲区,但这种方法在C标准中并未定义,其效果依赖于实现。在某些编译器下,`fflush(stdin)`可能...

    C C++ Scanf函数的用法.

    * %s:读入一个字符串 * %f:读入一个浮点数 * %F:同上 * %e:同上 * %E:同上 * %g:同上 * %G:同上 * %p:读入一个指针 * %u:读入一个无符号十进制整数 * %n:至此已读入值的等价字符数 * %[]:扫描字符集合 * ...

    scanf()函数释疑

    如果格式字符串与输入不匹配,`scanf()`将停止读取并返回当前已成功读取的数据数量。例如: ```c int a, b; scanf("a=%d,b=%d", &a, &b); ``` 输入为`a=3b=4`时,将只读取`a=3`,并忽略后续输入。 4. **处理...

    浅议C语言中字符数据的输入与输出.pdf

    C语言字符数据输入与输出知识点: 1. C语言程序设计基础: - C语言是一种过程性程序设计语言,其发展...在编程实践中,熟练掌握这些基础知识是至关重要的,它不仅有助于编写正确的代码,还能提高代码的效率和安全性。

    scanf.rar

    4. `%s`:读取字符串,直到遇到空格、制表符或换行符为止。 5. `%e`,`%E`,`%g`,`%G`:读取科学计数法表示的浮点数。 6. `%x`,`%X`:读取十六进制整数。 7. `%o`:读取八进制整数。 8. `%p`:读取内存地址。 9. `...

    C语言中字符数据的输入与输出问题解析.pdf

    字符串的存取操作不能直接以变量的形式进行,必须通过字符数组来实现。例如,char a[5]; 可以存储最多4个字符的字符串,最后一个字符位置留给'\0'。 二、字符数组的使用 字符数组是存放字符序列的数组,数组中每个...

    C语言中的输入语句.pdf

    - 对于数值数据,如果格式控制字符串中没有指定非格式字符作为输入数据的分隔符,编译器将会使用空格、制表符或回车键作为分隔符。 - 如果格式控制字符串中有非格式字符,那么在输入数据时也必须输入这些非格式字符...

Global site tag (gtag.js) - Google Analytics