OJ2782 继续切水题
地址:http://poj.grids.cn/practice/2797/
输入的时候一开始把字符串末尾的’\0’也输出了,所以总是提示输出错误,后来改了输入方法就对了,细节要注意,另外要学习几种输入输出的方法
#include<iostream> #include<stdio.h> using namespace std; int main() { char str[1000][21]; int suffix[1000]; int len=0; //gets(str[len])!=NULL&&str[len][0] while(cin>>str[len]) { suffix[len]=0; len++; } for(int i=0;i<len;i++) { if(str[i][suffix[i]]=='\0') { cout<<str[i]<<' '<<str[i]<<endl; continue; } for(int j=i+1;j<len;j++) { int k=0; while(str[i][k]!='\0'&&str[j][k]!='\0'&&str[i][k]==str[j][k]) { ++k; } if(suffix[i]<k) suffix[i]=k; if(suffix[j]<k) suffix[j]=k; }//end for cout<<str[i]<<' '; if(str[i][suffix[i]]!='\0') str[i][suffix[i]+1]='\0'; cout<<str[i]<<endl; }//end for return 0; }
附输入输出学习
1、cin读入一个字符:
char c;cin>>c;
2、cin读入一个字符串:
char s[10];cin >> s;(c风格字符串)
string str;cin >> str;(c++的string)
3、cin.get()读入一个字符:
char c;c=cin.get();
4、cin.get()读入一个字符串
char s[10];cin.get(s,10);
5、cin.getline()读入字符串(c风格和string都行,只要要是char *)
cin.getline(s,5)//默认回车
空格不行
//cin流
6、getline(cin,str)
str为string,可以读空格!
据说gets经常被禁用,不知为什么。getchar为何在Linux下说没有定义呢?