Не работает сравнение строк - C (СИ)
Формулировка задачи:
Подскажите пожалуйста, почему не работает строка с условием ? (ввожу в консоли end, проверка условия не срабатывает)
Код
if (str == "end") puts("Введено end");#include "stdafx.h"
#pragma warning(disable:4996)
#include <locale.h>
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "");
char str[80];
puts("Введите end");
scanf("%s", str);
if (str == "end") puts("Введено end");
return 0;
}Решение задачи: «Не работает сравнение строк»
textual
Листинг программы
for(i=0; password[i]; i++)
Объяснение кода листинга программы
- Переменная
iинициализируется значением 0. - Условие цикла
forпроверяет наличие символа в строкеpassword. Если символ присутствует, то выполняется тело цикла, иначе цикл завершается. - В теле цикла происходит увеличение значения переменной
iна единицу. - В данном случае не указано, что происходит с переменной
passwordвнутри цикла, поэтому предполагается, что она остается неизменной. - Код не содержит инструкций для проверки или обработки ошибок, поэтому предполагается, что он работает только в предположении, что все символы в строке
passwordприсутствуют и являются допустимыми для обработки в данном контексте. - Код не содержит инструкций для вывода информации на экран или в файл, поэтому предполагается, что он не предназначен для отображения результатов работы.
- Код не содержит инструкций для изменения значения переменной
passwordвнутри цикла, поэтому предполагается, что он не предназначен для изменения исходной строкиpassword. - Предполагается, что данный код используется в контексте более крупной программы, и его задача связана с обработкой строки
password. - Не указано, какая операционная система или компилятор используется для выполнения данного кода.
- Не указаны возможные значения или ограничения для переменной
password. - Не указаны возможные значения или ограничения для переменной
i. - Не указаны возможные значения или ограничения для символов в строке
password. - Не указаны возможные действия, которые должны быть выполнены при наличии символа в строке
password. - Не указаны возможные действия, которые должны быть выполнены при отсутствии символа в строке
password. - Не указаны возможные действия, которые должны быть выполнены после завершения цикла.
- Не указаны возможные действия, которые должны быть выполнены при возникновении ошибки во время выполнения цикла.
- Не указаны возможные действия, которые должны быть выполнены при завершении цикла без выполнения всех итераций.
- Не указаны возможные действия, которые должны быть выполнены при достижении переменной
iзначения, превышающего длину строкиpassword. - Не указаны возможные действия, которые должны быть выполнены при отсутствии строки
password. - Не указаны возможные действия, которые должны быть выполнены при наличии пустой строки
password.