两种方法
方法一
使用stdio函数库提供的char函数,这里我们在MSDN离线版上学习一下其用法
可以看到,gets()用于从标准输入流读入一个整行(以’\n’或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的’\n’从流中取出,但不写入数组。gets()不检查被写入的数组大小。
所以我们可以很容易写出如下代码:
#include<stdio.h>
int main()
{
char str[25] = { 0 };
gets(str);
printf("%s\n", str);
return 0;
}
实现后:
方法二
这里使用一个scanf函数提供的“%[]”格式来输入,这个格式可以让我们进行多字符的输入,同时决定输入结束的字符,只需要使用**^+我们需要停止的字符**下面为大家实际操作一波:
#include<stdio.h>
int main()
{
char str[25] = { 0 };
scanf("%[^\n]", str);
printf("%s\n", str);
return 0;
}
实现后:
我们甚至可以凭借%[ ^EOF ]来控制字符串的持续输入
如果对你有帮助的话,动动小手点个赞可以嘛,谢过各位啦~
2022/11/16 补充
我前天面试栽在这儿了,一个acm模式的题目,接口我写的出来,但是却没法输入一个带空格的字符串,实在荒唐(我巨想去的公司和部门);现在做c++的补充并整体做常规总结,希望兄弟们别犯和我一样的蠢错,这些简单的问题实在不应该出错,并且作为一个C程序员,这些是非常基本必须掌握的。
- C语言
可以使用gets,但是gets不限制写入大小,非常不安全,不使用
-
sranf+正则格式 scanf(“%[^\n]”,str)
-
fgets:fgets(str,sizeof(str),stdin)
- C++
-
字符串string类型对象,使用getline(cin,string)
-
字符数组类型,使用cin.get(str,str_size)