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下说没有定义呢?

posted on 2011-05-12 13:41  超级福满多  阅读(159)  评论(0编辑  收藏  举报