Печать значения проста - просто найдите первый экземпляр =
и увеличьте указатель на единицу:
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv, char **envp)
{
for (char **env = envp; *env != 0; env++)
{
char *pair = *env;
char *value = strchr(pair, '=');
if (value != NULL) {
printf("%s\n", value + 1);
}
}
}
Теперь, если вам нужнополучить имя переменной в виде строки с нулевым символом в конце, что более сложно - потому что вам, возможно, не следует изменять переменные окружения на месте, поэтому вам придется скопировать имя в другой массив.