#define _GNU_SOURCE
#include <iso646.h> // and
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// max number of characters in a line including '\n' and '\0'
const size_t maxline = 16;
int main() {
FILE *fp = stdin; // read from stdin
char line[maxline];
char *str = NULL, *s = NULL;
for (int i
= 1; fgets(line
, maxline
, fp
) != NULL
; ++i
) { const size_t n
= strlen(line
) + 1; // +1 for '\0' if (n == maxline and (maxline < 2 or line[maxline-2] != '\n')) {
fprintf(stderr
, "error: line #%d is too long: %s", i
, line
); }
// if line starts with "name" and '=' is in the string
const char* name = "name";
(s
= strchr(line
, '=')) != NULL
) { str = strdup(s+1); // copy everything after the first '='
if (str == NULL) {
}
printf("line #%d: name: %s", i
, str
); break;
}
}
// do other stuff with `str` here
// ...
}
I2RlZmluZSBfR05VX1NPVVJDRQojaW5jbHVkZSA8aXNvNjQ2Lmg+IC8vIGFuZAojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CgovLyBtYXggbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gYSBsaW5lIGluY2x1ZGluZyAnXG4nIGFuZCAnXDAnCmNvbnN0IHNpemVfdCBtYXhsaW5lID0gMTY7CgppbnQgbWFpbigpIHsKIEZJTEUgKmZwID0gc3RkaW47IC8vIHJlYWQgZnJvbSBzdGRpbgogY2hhciBsaW5lW21heGxpbmVdOwogY2hhciAqc3RyID0gTlVMTCwgKnMgPSBOVUxMOwogZm9yIChpbnQgaSA9IDE7IGZnZXRzKGxpbmUsIG1heGxpbmUsIGZwKSAhPSBOVUxMOyArK2kpIHsKICAgY29uc3Qgc2l6ZV90IG4gPSBzdHJsZW4obGluZSkgKyAxOyAvLyArMSBmb3IgJ1wwJwogICBpZiAobiA9PSBtYXhsaW5lIGFuZCAobWF4bGluZSA8IDIgb3IgbGluZVttYXhsaW5lLTJdICE9ICdcbicpKSB7CiAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvcjogbGluZSAjJWQgaXMgdG9vIGxvbmc6ICVzIiwgaSwgbGluZSk7CiAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICB9CiAgIC8vIGlmIGxpbmUgc3RhcnRzIHdpdGggIm5hbWUiIGFuZCAnPScgaXMgaW4gdGhlIHN0cmluZwogICBjb25zdCBjaGFyKiBuYW1lID0gIm5hbWUiOwogICBpZiAoc3RybmNtcChuYW1lLCBsaW5lLCBzdHJsZW4obmFtZSkpID09IDAgYW5kCiAgICAgICAocyA9IHN0cmNocihsaW5lLCAnPScpKSAhPSBOVUxMKSB7CiAgICAgc3RyID0gc3RyZHVwKHMrMSk7IC8vIGNvcHkgZXZlcnl0aGluZyBhZnRlciB0aGUgZmlyc3QgJz0nCiAgICAgIGlmIChzdHIgPT0gTlVMTCkgewogICAgICAgIHBlcnJvcigic3RyZHVwIik7CiAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICAgICB9CiAgICAgIHByaW50ZigibGluZSAjJWQ6IG5hbWU6ICVzIiwgaSwgc3RyKTsKICAgICAgYnJlYWs7CiAgIH0KIH0KIC8vIGRvIG90aGVyIHN0dWZmIHdpdGggYHN0cmAgaGVyZQogLy8gLi4uCiBmcmVlKHN0cik7Cn0=