batteryhp
#include <stdio.h>

#define		MAXLINE		10

int getLine(char s[], int lim);
void copy(char to[], char from[]);
int calcLen(char s[]);

int main()
{
	
	int len, index, row;
	char line[MAXLINE];
	char post_line[MAXLINE][MAXLINE];

	row = 0;
	while((len = getLine(line, MAXLINE)) > 0)
	{
		if(line[len-1] == \'/n\')	//判断读入的一行字符串的倒数第二个字符是否为\'/n\'
			index = len - 2;
		else
			index = len - 1;
		while(line[index] == \' \' || line[index] == \'/t\')   //消除字符串结尾的\' \'和\'/t\'
		{
				line[index] = line[index+1];
				line[index+1] = line[index+2];
				--index;
		}
		if(index > -1)
			copy(post_line[row++], line);	//如果line是全空格字符串,对其进行消除字符串结尾
                                                 // 处操作使得line成为一个空字符串,故不将其(空字
                                                 //符串)拷贝到post_line中。
	}

	for(index = 0; index < row; ++index)	//post_line针对其中每个字符串的倒数第二个
                                         //字符是否为\'/n\'在打印的时候做不同处理。
		if(post_line[index][calcLen(post_line[index])-1] != \'/n\')	
			printf("%s/n", post_line[index]);
		else
			printf("%s",post_line[index]);

	return 0;
}

int getLine(char s[], int lim)
{
	int i;
	char c;

	for(i = 0; i < lim-1 && (c = getchar()) != EOF && c != \'/n\'; ++i)
		s[i] = c;
	if(c == \'/n\')
	{
		s[i] = c;
		++i;
	}
	s[i] = \'/0\';
        fflush(stdin);			//每输入一行字符后(键入\'/n\'之后),清空输入缓冲区。

	return i;
}

void copy(char to[], char from[])
{
	int i;

	i = 0;
	while((to[i] = from[i]) != \'/0\')	
		++i;
	if(i == MAXLINE-1)
		to[i] = \'/0\';	
}

int calcLen(char s[])
{
	int i;

	i = 0;
	while(s[i] != \'/0\')
		++i;

	return i;
}


转载自:http://blog.csdn.net/roma823/article/details/6336895

 

分类:

技术点:

相关文章:

  • 2021-10-08
  • 2022-02-24
  • 2021-07-09
  • 2021-10-03
  • 2022-02-12
  • 2021-08-13
  • 2021-11-12
  • 2021-11-10
猜你喜欢
  • 2021-12-25
  • 2021-11-14
  • 2022-12-23
  • 2021-11-29
  • 2022-12-23
  • 2021-12-01
  • 2021-12-06
相关资源
相似解决方案