#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_TOKENS 3
#define DELIMITER "\n"
int main(int argc, char* argv[]) {
char s[30] = "file2.py\n"
"file3.py\n\n" // Хоть одинарные, хоть двойные
"file.py\n";
char* tokens[MAX_TOKENS];
char* token = strtok(s, DELIMITER);
for (int i = 0; (token != NULL) && (i < MAX_TOKENS); i++) {
tokens[i] = token;
token = strtok(NULL, DELIMITER);
}
for (int i = 0; i < MAX_TOKENS; i++)
printf("%s\n", tokens[i]);
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <stdlib.h>
#define BUF_SIZE 128
int name_pc(char* buf) {
FILE *p = popen("hostname", "r");
if (p == NULL)
return 0;
int r = 1;
if (!fgets(buf, BUF_SIZE, p))
r = 0;
pclose(p);
return r;
}
int main(int argc, char* argv[]) {
char hostname[BUF_SIZE];
if (!name_pc(hostname)) {
fputs("Error!", stderr);
return EXIT_FAILURE;
}
printf("%s\n", hostname);
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <string.h>
#include <pcre.h>
#define DATE_SIZE 11
int main(int argc, char* argv[]) {
pcre *pattern;
const char *error_str;
int error_offset;
int matches[1];
pattern = pcre_compile("^\\d{2}\\.\\d{2}\\.\\d{4}$", 0, &error_str, &error_offset, NULL);
if(pattern == NULL) {
printf("Could not compile: %s\n", error_str);
return 1;
}
char str[DATE_SIZE];
fgets(str, DATE_SIZE, stdin);
int r = pcre_exec(pattern, NULL, str, strlen(str), 0, 0, matches, 1);
pcre_free(pattern);
if (r < 0)
puts("Invalid date");
else
puts("Valid date");
return EXIT_SUCCESS;
}