stm32串口接收字符串键盘输入的一个个字符,并加以输出,直到键入的字符是“#”时终止

括号匹配检验的问题从键盘接收一个字符串(长度最长设为100),检测其中的括号(),[],{}匹配情况,若有成对括号(包括中括号和大括号)则在屏幕输出括号对及其所包含的字符内容.要在屏幕上输出括号包含的字符,不能只判断啊
啊刷粉0188
这是一个人的回答:补充:你可以左括号入栈时,通过一个数组变量记录当前括号所在字符串中的位置标号(如s[2]即为2),然后当遇到匹配的括号后(如s[5]即为5),记录下匹配括号的位置下标,将字符串截取函数substr()用法:substr 方法basic_string::substrbasic_string substr(size_type _Off = 0,size_type _Count = npos)功能:从一个字符串复制一个从指定位置开始,并具有指定长度的子字符串下面的示例阐释了 substr 方法的用法.function SubstrDemo(){var s, //Declare variables.var s = "sd(df)qwd";ss = s.substr(2,5-2); //Get substring括号+内容.return(ss); // Returns "(df)".}
为您推荐:
其他类似问题
扫描下载二维码> 这个题是怎么回事,不明白从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“#”为止。#in
这个题是怎么回事,不明白从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“#”为止。#in
gxd_0528 & &
发布时间: & &
浏览:68 & &
回复:6 & &
悬赏:0.0希赛币
这个题是怎么回事,不明白!从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“#”为止。#include&stdio.h&main(){FILE* &char ch,filename[10]; &scanf(&%s&,filename); &if((fp=fopen(filename,&w&))==NULL) &
{printf(&cannot open file\n&); &
exit(0);} ch=getchar(); &ch=getchar(); &while(ch!='#') &{ &
fputc(ch,fp);putchar(ch); &
ch=getchar(); &} &fclose(fp); &}黑体的这个地方,些语句用来接收在执行scanf语句时最后输入的回车符。我不明白,为什么要接收它,还有,为什么只接收它?执行scanf时,又不是只输入了一个回车符,还输入了文件的名称,为什么不接收名称,只接收它?
scanf会读取输入信息,但是会有一个换行符剩余,所以要将这个换行符读出来,避免对下一次读取产生影响
wskynhz & &
& & (0)(0)scanf(&%s&,filename);scanf是不会将回车换行符读入到变量filename里的.scanf只有在控制传为%c时,才能读入空字符(如回车,空格,跳格等).也就意味着在输入文件名如1.txt后,然后输入回车。scanf读取1.txt。而键盘缓冲区里海留有一个回车符.这就是为什么要用一个ch=getchar();来吸收回车换行字符原因.
wskwsj & &
& & (0)(0)
{printf(&cannot open file\n&); exit(0);}ch=getchar(); &ch=getchar();粗体的部分是读取scanf剩下的换行符,粗体部分的ch的值 永远是0xA。
wsktaaps & &
& & (0)(0)getchar 和 scanf 都是用户输入回车后才返回的,也就是说键盘输入缓存里或许还有别的。不过再加一个getchar未必能解决什么问题,还是把标准输入flush一下比较好。
wskynije & &
& & (0)(0)二三楼已经基本回答清楚了。我来补充一点:scanf %s的作用是,越过前面的空白(包括空格,Tab,\n),读取内容,到后面的空白之前停下。意思是如果你输入“
abc.txt ”然后按回车,那么流中就会剩下字符'c'后面的那个空格,还有你最后敲入的\n。所以scanf的设计其实是很烂的……你这种方法也不好,因为在这种情况下一次getchar的调用只能读走空格,还是把\n留在了流中……更好的方法是:scanf(&%s &, filename),注意%s后面的那个空格,它表示读取任意长度的空白,这样可以将上述情况中的多余字符全部去除。
wsktuuh2006 & &
& & (0)(0)探讨引用:还有这个程序main(){scanf(&%c&,&c);printf(&%c&,c);}当我输入h回车的时候,C只能存一个字符,那这个回车存到哪去了呢?回车依旧保留在键盘缓冲区里。如果后面还有接受键盘输入的地方,未调整标准输入流之前,必定是先读取缓冲区里的回车符号.程序结束后,标……wsktuuh2006 & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&

我要回帖

更多关于 java键入字符串 的文章

 

随机推荐