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;}
. - Завершается выполнение кода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д