C语言scanf()函数读取包含空格的字符串

scanf()函数读取输入时,遇到空格或者回车结束读取;

所以输入的字符串中有空格,到空格就中断了;

根据资料,使用 "%[^\n]" 这样的格式化符遇到空格继续读取,直到敲了回车;

看一下;

cpp 复制代码
#include <stdio.h> 

int main() 
{ 
    char str1[80]; 
	char str2[80];

	scanf("%s", str1);
	printf("str1 = %s\n",str1);
    scanf("%[^\n]",str2); //读到'\n'结束读取
	printf("str2 = %s\n",str2);

    return 0; 
}

输入AAA BBB CCC DDD,AAA读到了str1中,BBB CCC DDD读到了str2中;

我理解了一下,[]表示集合,^表示非,\n是换行符; 这是正则;

正则的^在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合;

相关推荐
电摇小人14 分钟前
科学备赛今年NOIP!!
java·开发语言
2301_8035545218 分钟前
每日做面经-25.11.16
开发语言
菜鸟-0121 分钟前
上位机---QT
开发语言·qt
她说彩礼65万25 分钟前
C# Lambda 表达式
开发语言·c#
Bug快跑-126 分钟前
Java、C# 和 C++ 并发编程的深度比较与应用场景
java·开发语言·前端
2501_9411114632 分钟前
高性能计算集群部署
开发语言·c++·算法
普通网友1 小时前
模板编译期机器学习
开发语言·c++·算法
普通网友1 小时前
C++与机器学习框架
开发语言·c++·算法
普通网友1 小时前
C++安全编程指南
开发语言·c++·算法
学困昇1 小时前
C++11中的右值引用和移动语义
开发语言·c++