Hatena::Groupgeneration1986

仮想化済み古代魚

 | 

2008-06-29

K&R演習1-22 文字列を折りたたみ

20:34

 getlineを流用。

#include <stdio.h>

#define eq ==
#define ORIME 20
#define MAXLINE 1000

void tatamu(char s[]);
int getline(char s[]);

int main(void)
{
	char line[MAXLINE];
	
	while(getline(line) > 0){
		tatamu(line);
		printf("処理\n%s\n", line);
	}
	return 0;
}

void tatamu(char s[])
{
	int i;
	int j;		//seisyoの添字用
	char seisyo[MAXLINE];	//たたんだ後の文字列を格納

	for(i = j = 0; (seisyo[j] = s[i]) != '\0'; i++, j++){
		//ORIME桁に到着
		if((i+1) % ORIME eq 0){
			j++;
			while(seisyo[j-1] eq '\t' || seisyo[j-1] eq ' ')//前字は?
				j--;
			seisyo[j] = '\n';
		}
	}
	seisyo[j] = '\0';
	
	for(i = 0; (s[i] = seisyo[i]) != '\0'; i++);	//sの中身をseisyoで上書き
	s[i] = '\0';
}

int getline(char s[])
{
//割愛
}
トラックバック - http://generation1986.g.hatena.ne.jp/oldfish/20080629
 |