Для начинающих функция gets
не является стандартной функцией C, то есть больше не поддерживается стандартом C. Вместо этого используйте стандартную функцию fgets
.
Например,
printf( "Enter name: " );
fgets( str, sizeof( str ), stdin );
str[ strcspn( str, "\n" ) ] = '\0';
Кроме того, функция main без параметров в соответствии со стандартом C должна быть объявлена как
int main( void )
Что касается функции, которая находит длину строки, то она должна быть объявлена следующим образом
size_t stringlength( const char s[] );
и может быть упрощена как
size_t stringlength( const char s[] )
{
size_t n = 0;
while( *s++ != '\0' ) ++n;
return n;
}
В main вы можете написать
size_t len = stringlength(str);
printf("Name length is %zu\n", len);
^^^
Вот демонстрационная программа
#include <stdio.h>
#include <string.h>
size_t stringlength( const char s[] )
{
size_t n = 0;
while( *s++ != '\0' ) ++n;
return n;
}
int main(void)
{
enum { N = 20 };
char str[N];
printf( "Enter name: " );
fgets( str, sizeof( str ), stdin );
str[ strcspn( str, "\n" ) ] = '\0';
printf( "Your name is %s\n", str );
size_t len = stringlength( str );
printf( "Name length is %zu\n", len );
return 0;
}
Ее вывод может выглядеть как
Enter name: Gokul UK
Your name is Gokul UK
Name length is 8