В практическом задании к прошлому занятию, я просил вас написать программу, которая вычисляет длину строки без учета нулевого элемента. Длина строки - это один из самых важных параметров, характеризующих любую строку, и необходимый при работе со строками. Для определения длины строки в заголовочном файлеstring.h описана функция strlen().
Данная функция имеет простой синтаксис. Она принимает один параметр строку символов, и возвращает в результате своей работы целое число - длину этой строки.
Листинг 15.1
#include <stdio.h>
#include <string.h>
int main(void) {
char str[]="Hello world";
int n=strlen(str);
printf("Dlina stroki %d simvolov\n",n);
return(0);
}
|
| Рис.1 Программа, иллюстрирующая работу функции strlen().
|
Как видите ничего неожиданного, функция вернула в результате своей работы число 11.
Теперь, на основании знаний, полученных на прошлом занятии, объясните результат работы следующей программы.
Листинг 15.2
#include <stdio.h>
#include <string.h>
int main(void) {
char str[100];
fgets(str,100,stdin);
int n=strlen(str);
printf("Dlina stroki %d simvolov\n",n);
return(0);
}
|
| Рис.2. Иллюстрация работы программы Листинг 15.2
|
Почему, когда мы ввели Hello world и нажали Enter, наша функция вернула нам число 12, а не 11 как в прошлом случае?