欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

uva10562

发布时间:2025/4/16 编程问答 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 uva10562 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
/* fgets()函数 char *fgets( char *s,int n, FILE *stream); 参数:s:字符型指针指向存储读入数据的缓冲区地址;n: 从流中读取n-1个字符;stream: 指向读取的流; 返回值:当n<=0时,返回NULL,空指针;当n=1时,说明为空串;当读取成功时,返回缓冲区地址; 在用fgets(..)读入数据时,先定义一个字符数组或字符指针,如果定义了字符指针 ,那么一定要初始化。 char s[100];char *s; //不可以,因为只是声明了一个指针。但并没有为它分配内存缓冲区。 char *s=(char *)malloc(100*sizeo(char)); char *s=new char [100];如果未分配内存空间,编译时不会检查出问题,但运行时会出现未知错误。。fgets(...)从标准设备读数据。用fgets(...)还也读入标准输入设备(一般为键盘)的信息原型 : fgets(s,n,stdin);假设在控制台下,我们可以用fgets(...)替代gets(),读入键盘输入的信息,fgets()是安全的,因为不会像gets()有溢出的可能。。比如 :输入 abcfgets(s,n,stdin)也会读入n-1个字符。但是只是从stdin流读入。。。*/ #include <cstdio> #include <cctype> #include <stdio.h> #include <sstream> #include <string.h> #include <iostream> using namespace std; #define max 210 char str[max][max]; int n; void dfs(int r,int c) {printf("%c(",str[r][c]);if(r+1<n&&str[r+1][c]=='|'){int i=c;while(i-1>=0&&str[r+2][i-1]=='-')i--;while(str[r+3][i]!='\0'&&str[r+2][i]=='-')//{if(!isspace(str[r+3][i]))dfs(r+3,i);i++;}}printf(")"); } void solve() {memset(str,0,sizeof(str));n=0;for(; ;){fgets(str[n],max,stdin);if(str[n][0]=='#')break;else //n++;}printf("(");if(n){for(int i=0;i<strlen(str[0]);++i){if(str[0][i]!=' '){dfs(0,i);break;}}}printf(")\n"); } int main() {int t;fgets(str[0],max,stdin);sscanf(str[0],"%d",&t);cin>>t;getchar();while(t--)solve();return 0; } /* 2A| -------- B C D| |----- -E F G # e | ---- f g # */

 

总结

以上是生活随笔为你收集整理的uva10562的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。