Я хочу зациклить все символы в строке, чтобы получить длину строки, но это не работает. Я предпочитаю не использовать для этого уже созданную функцию.
#include <stdio.h>
#define N 100
int main()
{
int i=0;
char str[N];
scanf("%s", &str);
while(str[i]! = "\0"){
i=i+1;
}
printf("Lenght: %d", i);
return 0;
}
Для начала вызов scanf должен выглядеть как минимум
scanf("%s", str);
вместо
scanf("%s", &str);
В условиях цикла while
while(str[i]! = "\0"){
сравнивается символ со строковым литералом "\0"
, который неявно преобразуется в указатель на его первый символ. Итак, сравнивается символ с указателем.
Вам нужно сравнить два символа
while(str[i] != '\0' ){
или просто
while(str[i]){
использовать функцию
strlen()
из заголовочного файлаstring.h