Дължината на низ - функция strlen ()
Дължината на низ - функция strlen ()
В предишната глава, ние използвахме почти без операция обяснение sizeof. което ни дава размера на обектите в байтове strlen () функция ви позволява да определите дължината на номера на низ от знаци. Що се отнася до поставянето на един знак в паметта се разпределя един байт, човек би се предположи, че в резултат на някоя от тези две операции в една линия ще се получи същия резултат. Оказва се, че не е. Да променим предишния ни програма (добавят няколко линии до него), а след това ние ще се разбере какво е то.
#define PRAISE "Уау, какъв велик име!"
ФОРМАТ ( "Как се казваш?");
ФОРМАТ ( ". Добре,% S% S" име, слава.);
ФОРМАТ ( "Вашето име е съставено от букви. и капаци. Спомени".
strlen (име), sizeof наименование);
ФОРМАТ ( "Хвалете фраза се състои от буквите"., strlen (PRAISE));
ФОРМАТ ( "и заема клетките на паметта ..", sizeof PRAISE);
Обърнете внимание, че аварията ние използвахме два метода за ФОРМАТ () боравене с дългите оператори. В първия случай ние пишем за пресата оператор в двата програмни линии. Направихме го, защото е позволено да се прекъсне низ между аргументите, но не и в средата на линията. В друг случай, ние използвахме две ФОРМАТ () декларация за отпечатване на един ред; ние посочи характера "нов ред" (), само второто от тях. По-долу е резултат от работата на тази програма ще ви помогне да разберете тази ситуация:
Здравейте, Perks. Уау, какъв велик име!
Вашето име разполага с 5 букви и взема 50 места в паметта.
Хвалебствена фраза се състои от 35 букви и взема 36 места в паметта.
Нека да видим какво не е наред. име Array е 50 места в паметта, и това се отчита от оператора на sizeof. Но да държи име надута изисква само първите пет слота, а само за това сме информирали strlen (функция). В шестия клетката на името на масива съдържа празен символ, и външния му вид е сигнал за strlen функцията () спре да брои характер
Фигура 4.4. функция за откриване strlen () нов ред
При прехода към обработка постоянна PRAISE установено, че функцията strlen () отново ни дава точния брой на знака (включително интервали и препинателни знаци) в един ред. Sizeof резултат операция е един по-голям, тъй като се вземат предвид и "невидим" нула символи, поставени в края на линията. Ние не каза компилаторът колко памет тя трябва да предприеме, за да се настанят на цялата фраза, той се брои броя на знаците между кавичките.
Друга забележка в предишната глава е бил използван операцията sizeof скоба, а в това - без тях. Да скоби се използва разтвор или не, зависи от това, което искате да знаете размера на паметта, запазена за елементите на определен тип или размера на паметта, използвана от някои обекти в първия случай, вие ще sizeof (Чар) или sizeof (флоат) пишат. а във втория - sizeof името или sizeof 6.28.
Споделяне на страницата