Как правильно считать строку для сравнения? - C (СИ)
Формулировка задачи:
как правильно считать строку для сравнения ?
Решение задачи: «Как правильно считать строку для сравнения?»
textual
Листинг программы
#include <stdio.h>
int str_compare (char *str1, char *str2){
int i;
for (i = 0;; i++){
if (str1[i] == '\0' && str2[i] == '\0')
return 1;
else
if (str1[i] != '\0' && str2[i] != '\0')
if (str1[i] != str2[i])
return 0;
else
continue;
else
return 0;
}
}
void main (){
char *str1 = "string";
char *str2 = "string";
if (str_compare (str1, str2) == 1)
puts ("yes");
else
puts ("no");
}
Объяснение кода листинга программы
- Включаем файл стандартного ввода/вывода
- Функция str_compare принимает два указателя на символы (char str1, char str2) и возвращает 1, если строки равны, и 0 в противном случае.
- Внутри функции объявлена переменная i типа int, которая будет использоваться в цикле.
- Используется цикл for с условием продолжения, которое выполняется до тех пор, пока оба символа не станут нулевыми.
- Если оба символа нулевые, функция возвращает 1.
- Если оба симвома не нулевые, функция сравнивает их. Если они не равны, функция возвращает 0.
- Если один из символов равен нулю, функция возвращает 0.
- В конце функции используется return 0.
- В функции main создаются две переменные типа char* (строки) str1 и str2, которые содержат одинаковые значения
string. - Вызывается функция str_compare с аргументами str1 и str2.
- Результат функции приравнивается к 1, то есть обе строки равны.
- Выводится сообщение
yesс помощью функции puts.