Вот мой код:
#include<stdio.h> #include<string.h> int string_length(char s[]); main() { char s[50]; int l; printf("Enter the string\n"); scanf("%s\n",s); l=strlen(s); printf("Length of string = %d\n",l); } int string_length(char s[]) { int i; i=0; while(s[i] != '\0') ++i; return i; }
После компиляции он сканирует два входных значения.
Что не так с моим кодом?
Избавьтесь от новой строки в scanf.
scanf
scanf("%s",s);
Это должно заставить этот код работать.
Но я не могу понять, почему вы написали функцию для вычисления длины строки, если вам пришлось использовать strlen().
strlen()
HTH, Sriram.
const size_t sillyStrlen(const char* text) { if (*text) { return sillyStrlen(text + 1) + 1; } return 0; }
Вы звоните strlen вместо своего string_length в main.
strlen
string_length
main
Попробуйте это.
#include<stdio.h> #include<conio.h> #include<string.h> int main() { char *str; printf("Enter a string\n"); gets(str); printf("The size of the string is %d",strlen(str)); getch(); return 0; }
int strlen(char[])