C++如何动态接收用户输入的字符串
答案:2 悬赏:70 手机版
解决时间 2021-03-24 03:13
- 提问者网友:寂寞梧桐
- 2021-03-23 07:20
C++如何动态接收用户输入的字符串
最佳答案
- 五星知识达人网友:妄饮晩冬酒
- 2021-03-23 07:31
1、scanf("%c",a);//输入一个字符,a代表的是一个字符
2、scanf("%s",a);//输入一个字符串,a代表的是一个字符数组的名字,不接受空格的
3、getchar();//输入一个字符
4、gets(a);//输入一个字符串,a代表的是字符串的名字,可以接搜空格的!
c++中:
1、cin>>
输入数字:以空格或回车结束
输入字符或字符串:以空格、TAB、回车结束!
2、cin.get(字符变量名):用来接收字符
cin.get(字符数组名,接受字符数目),用来接收一个字符串,可以接受空格的
cin.get(无参数):没有参数主要是用于舍弃输入流中的不需要的字符或者舍弃回车弥补cin.get(字符数组名,接受字符数目),的空格的不足
3、cin.getline(字符数组名,接受字符数目):接受一个字符串
cin.getlne():其实可以有三个参数,最后一个参数是字符串的结束标志,当最后的参数省略时,默认是'\0'
4、getline():接受一个字符串,可以接受空格的,也可以有三个参数的
5、gets():接受一个字符串,可以接受空格的
6、getchar():接受一个字符即可
2、scanf("%s",a);//输入一个字符串,a代表的是一个字符数组的名字,不接受空格的
3、getchar();//输入一个字符
4、gets(a);//输入一个字符串,a代表的是字符串的名字,可以接搜空格的!
c++中:
1、cin>>
输入数字:以空格或回车结束
输入字符或字符串:以空格、TAB、回车结束!
2、cin.get(字符变量名):用来接收字符
cin.get(字符数组名,接受字符数目),用来接收一个字符串,可以接受空格的
cin.get(无参数):没有参数主要是用于舍弃输入流中的不需要的字符或者舍弃回车弥补cin.get(字符数组名,接受字符数目),的空格的不足
3、cin.getline(字符数组名,接受字符数目):接受一个字符串
cin.getlne():其实可以有三个参数,最后一个参数是字符串的结束标志,当最后的参数省略时,默认是'\0'
4、getline():接受一个字符串,可以接受空格的,也可以有三个参数的
5、gets():接受一个字符串,可以接受空格的
6、getchar():接受一个字符即可
全部回答
- 1楼网友:佘樂
- 2021-03-23 08:15
这个涉及到动态数组的概念,比如用户在输入完字符串之后判断字符串的长度,
在对应的申请内存空间,这一过程是动态的,而不是事先申请很大的空间备用。
LZ可以搜一下动态数组的概念和实现,就明白了。
望采纳。追问我的意思是,比如先申请一个char custom_cin[20],然后把用户输入的字符串依次填入custom_cin,如果空间20够了,那就直接加'\0',如果用户输入的字符串超过19个了,造成所申请空间不够用,那么就再malloc空间。然后再看能否全部接受,如果不能则再malloc...追答这样的情况是不可以的,如果定义数组custom_cin[20]的话,那么在编译时就为其分配了固定大小的空间了,在程序运行过程中如果再申请内存的话,是没办法保证地址连续的你懂吧,而一个指针又无法指向两块地址(custom_cin[20]的指针),因此是实现不了的。
望采纳。追问我们可以定义重新定义一个数组,然后拼接两个字符串数组。
交个朋友吧。这样好学习。追答但是程序是在运行中的,已经是编译完成了的代码了。
而写代码的时候你怎么知道要定义多少个数组,它们分别是多长呢?
如果知道的话定义一个就好了,不用拼接了对么?
望采纳。
朋友是可以交,但是我水平有限提前说明。
在对应的申请内存空间,这一过程是动态的,而不是事先申请很大的空间备用。
LZ可以搜一下动态数组的概念和实现,就明白了。
望采纳。追问我的意思是,比如先申请一个char custom_cin[20],然后把用户输入的字符串依次填入custom_cin,如果空间20够了,那就直接加'\0',如果用户输入的字符串超过19个了,造成所申请空间不够用,那么就再malloc空间。然后再看能否全部接受,如果不能则再malloc...追答这样的情况是不可以的,如果定义数组custom_cin[20]的话,那么在编译时就为其分配了固定大小的空间了,在程序运行过程中如果再申请内存的话,是没办法保证地址连续的你懂吧,而一个指针又无法指向两块地址(custom_cin[20]的指针),因此是实现不了的。
望采纳。追问我们可以定义重新定义一个数组,然后拼接两个字符串数组。
交个朋友吧。这样好学习。追答但是程序是在运行中的,已经是编译完成了的代码了。
而写代码的时候你怎么知道要定义多少个数组,它们分别是多长呢?
如果知道的话定义一个就好了,不用拼接了对么?
望采纳。
朋友是可以交,但是我水平有限提前说明。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯