Break не останавливает цикл - C (СИ)
Формулировка задачи:
Здравствуйте! У меня возникла такая проблема - в этом коде break не хочет выходить из цикла, если ему попадается строка "}". Перед if я для самопроверки поставил printf, чтобы убедиться, что именно эта строка ему попадает. Скриншот прилагаю. В чем проблема то?
#include<stdio.h>
#include<stdlib.h>
extern char**environ;
void main(int argc, char**argv){
int i=0;
char* name="MYENV";
const char* var = "HOME{;PATH;LANG;USER;}";
setenv(name, var,0);
char *var2 = getenv(name);
printf("Variable of env MYENV: %s\n",var2);
char*temp = strtok(var2,"{");
printf("%s = %s\n",temp, getenv(temp));
while(temp){
temp=strtok(NULL,";");
if(temp =="}")
break;
printf("%s = %s\n", temp, getenv(temp));
}
}Решение задачи: «Break не останавливает цикл»
textual
Листинг программы
[user@localhost C]$ ./a.out
Variable of env MYENV: HOME{;PATH;LANG;USER;}
HOME = /home/user
PATH = /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/lib/mpich/bin:/home/user/.local/bin:/home/user/bin:/usr/lib/mpich/bin
LANG = ru_RU.UTF-8
USER = user
[user@localhost C]$
Объяснение кода листинга программы
В представленном коде выполняется следующее:
- Создаются переменные окружения
MYENVиHOMEсо значениями/home/userи/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/lib/mpich/bin:/home/user/.local/bin:/home/user/bin:/usr/lib/mpich/bin. - Создаются переменные окружения
PATH,LANGиUSERсо значениями/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/lib/mpich/bin:/home/user/.local/bin:/home/user/bin:/usr/lib/mpich/bin,ru_RU.UTF-8иuser. - Выполняется команда
echoс аргументамиVariable of env MYENV: HOME{;PATH;LANG;USER;}, которая выводит строкуVariable of env MYENV: HOME{;PATH;LANG;USER;}. - Завершается выполнение кода.