здраствуйте форумчане, суть моего вопроса состоит в том что надо разбить строку сисволом '=' из переменой env и записать в структуру block
struct block
{
char *name;
char *value;
};
int main(int, char**, char** env)
Можно изобразить что-то в таком духе:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct block
{
char *name;
char *value;
};
int
main (int ac, char *av[], char **env)
{
int n = 0;
while (env[n])
n++;
struct block p[n];
for (int i = 0; i < n; i++) {
p[i].name = strdup(env[i]);
p[i].value = strchr(p[i].name, '=') + 1;
p[i].value[-1] = 0;
}
for (int i = 0; i < n; i++)
printf("%s : '%s'\n", p[i].name, p[i].value);
return puts("End") == EOF;
}
Если опасаетесь некорректно сформированного env[]
, добавьте проверку самостоятельно.
Если что-то непонятно, читайте manpages, а потом не стесняйтесь, спрашивайте.
Я бы сделал примерно так:
#include <cstring>
#include <iostream>
#include <string>
#include <string_view>
#include <vector>
struct block
{
std::string name, value;
};
int main(int, char **, char **env)
{
std::vector<block> blocks;
for (char **ptr = env; *ptr; ptr++)
{
std::string_view string = *ptr;
std::size_t separator = string.find_first_of('=');
blocks.push_back({std::string(string.substr(0, separator)),
std::string(string.substr(separator+1))});
}
for (const block &b : blocks)
std::cout << b.name << " = " << b.value << '\n';
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я начал изучать C++ ООПИ придумал вот такой пример с фабриками по добыче угля и железа
Не понимаю как реализовать QTreeView с checkboxКак обработать событие установки и снятия "галочки"
Например я получаю из очереди сообщение и хочу его разослать всем потокамЯ думал про общую память, но вроде вдруг не все потоки успеют использовать...
Есть ли аналог unix socket в windows? Типа такого как в линукс и unix