new.txt というテキスト ファイルがあり、次の要素が含まれています。
vv
vinoop
raju
kiran
regu
ramu
「vinoop」と「regu」の間のデータだけを読み込んで他のファイルに出力したいので、このように出力したい
raju
kiran
誰でも例を手伝ってもらえますか
strstr()
の位置を検出するために使用しvinoop
、最初の位置はstrstr()
+によって返される位置ですstrlen(vinoop)
そして、もう一度使用して文字列 (2 番目の位置)strstr()
を検出するregu
と、これらの 2 つの位置の間で文字列を抽出できます。strncpy()
#include <stdio.h>
#include <string.h>
#define START_KEYWORD "vinoop"
#define STOP_KEYWORD "regu"
int main(void){
FILE *fp;
char line[256];
int in_range = 0;
fp=fopen("new.txt", "r");
while(fgets(line, sizeof(line), fp)){
int len = strlen(line);
if(line[len-1]=='\n') line[--len] = '\0';//drop newline
if(strcmp(START_KEYWORD, line)==0){
in_range = 1;
continue;
}
if(strcmp(STOP_KEYWORD, line)==0){
in_range = 0;
continue;
}
if(in_range)
printf("%s\n", line);
}
fclose(fp);
return 0;
}