Найти длину строки в C (задача)
- Привет!!!
У меня проблема с кодом на языке Си.
Я читаю ввод от пользователя и хочу извлечь длину ввода с помощью указателя,но получаю некоторые ошибки в терминале.
Заранее спасибо...
Ошибка:
find_string_length_pointer.c: In function ‘main’: find_string_length_pointer.c:10:24: error: invalid initializer char user_in[50] = user_input(); ^~~~~~~~~~ find_string_length_pointer.c: In function ‘user_input’: find_string_length_pointer.c:20:13: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[50]’ [-Wformat=] scanf("%s" , &user_input); ~^ ~~~~~~~~~~~ find_string_length_pointer.c:21:12: warning: return makes integer from pointer without a cast [-Wint-conversion] return user_input; ^~~~~~~~~~ find_string_length_pointer.c:21:12: warning: function returns address of local variable [-Wreturn-local-addr]
Что я уже пробовал:
#include <stdio.h> char user_input(); int length_input(char *str_input); int main(void) { char user_in[50] = user_input(); int str_length = length_input(user_in); printf("Length of input: %s , is: %d." , user_in , str_length); } char user_input() { char user_input[50]; printf("Give a letter/string/sentence to find it length: "); scanf("%s" , &user_input); return user_input; } int length_input(char *str_input) { int length = 1; while(*str_input != '\0') { length++; str_input++; } return length; }
Richard MacCutchan
Почему бы не использовать strlen, который делает это за вас?