Как правильно перебирать строку в Си?
Когда у нас есть строка и мы ищем какой-либо элемент, мы можем делать это с помощью счетчика i (i++
) либо просто увеличивая адрес указателя (str2++
). Результат будет один, хотя механизмы немного разные. Можно ли сказать что всегда можно использовать (str++
) так как не нужно вводить дополнительную переменную i, т.е. меньше кода нужно писать?
И как правильно выбрать условие - while(str1[i] !='\0')
или while(str1[i])
или while (*str1)
? Равноценны ли данные выражения?
int main() {
int i = 0;
char* str1 = "abcd";
char* str2 = "efgh";
while (str1[i] !='\0' )
i++;
while (*str2)
str2++;
return 0;
}