在C中打印环境变量WITHOUT VALUES



如何在C中打印环境变量,但没有值?只有变量。

int main(int argc, char **argv, char **envp)
{
    while(*envp!=NULL) {
        printf("%sn", *envp);
        envp++;
    }
    system("pause");
    return 0;
}

由于环境变量具有NAME=value的格式,因此您只需要显示=字符以内的部分字符串。

#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv, char **envp)
{
    while(*envp!=NULL) {
        char * len = strchr(*envp, '=');
        if (len == NULL)
            printf("%sn", *envp);
        else
            printf("%.*sn", len - *envp, *envp);
        envp++;
    }
    system("pause");
    return 0;
}

Ideone

环境变量的格式为NAME=value。因此,您可以查找第一个=符号并只打印到它,以仅获得名称。

最新更新