RSS

bcc32 / cut

09 11月
/* ファイルの各行の指定開始位置から指定終了位置のバイトを取り出す */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void main(int argc, char *argv[])
{
 int pos1, pos2, pos3, i, n;
 char s[1024];
 char *p;
 if (argc == 1)
 {
  puts("Usage: cut pos1 < file | cut pos1 pos2 < file");
  return;
 }
 else if (argc == 2)
 {
  pos1 = 0;
  pos2 = atoi(*++argv) - 1;
 }
 else if (argc >= 3)
 {
  pos1 = atoi(*++argv);
  pos2 = atoi(*++argv) - 1;
 }
 if (pos2 < pos1)
 {
  puts("Error: pos2 < pos1 is illegal.");
  return;
 }
 if ((pos2 < 0) || (pos1 < 0))
 {
  puts("Error: pos must be positive value.");
  return;
 }
 while (1)
 {
  p = gets(s);
  puts(s);
  if (p == NULL)
   break;
  n = strlen(s) - 1;
  if (pos2 >= n)
   pos3 = n;
  else
   pos3 = pos2;
  /* printf("** n=%d,pos1=%d,pos2=%d,pos3=%d\n",n,pos1,pos2,pos3); */
  for (i = pos1; i <= pos3; i++)
   putchar(s[i]);
  putchar('\n');
 }
}
 
bcc32 / cut はコメントを受け付けていません。

投稿者: : 2010/11/09 投稿先 C

 

コメントは受け付けていません。