c程序读取2个字符串之间的数据

时间:2013-05-23 08:54:18

标签: c++ c

我有一个名为new.txt的文本文件,它包含以下元素

vv
vinoop
raju
kiran
regu
ramu

我想阅读“vinoop”和&之间的唯一数据。 “regu”将其打印在其他文件上  所以我想要这样的输出

raju 
kiran

任何人都可以帮我一个例子

2 个答案:

答案 0 :(得分:1)

使用strstr()检测vinoop的位置,然后第一个位置是strstr() + strlen(vinoop)

返回的位置

然后再次使用strstr()检测字符串中的regu(第二个位置),然后您可以使用strncpy()

提取这两个位置之间的字符串

答案 1 :(得分:0)

#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;
}