- •Void main(void)
- •Void main(void)
- •Void main()
- •Void main()
- •Viod main()
- •Условные выражения
- •Void main()
- •If(Выраженне1) Выражение2;
- •If(Выражение1) Выраженпе2; else ВыражениеЗ;
- •Void main()
- •Циклические выражения
- •Void nain()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Массивы
- •Void main()
- •Void main()
- •Void main()
- •Viod main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Адреса и указатели
- •Void main()
- •Viod main()
- •Функции
- •Void main(void)
- •Void main(void)
- •Int I; double X,step();
- •Void decart(double r, double f)
- •Void main()
- •Void decart(double r,double f,double *X,double*y)
- •Void main()
- •Void rnain()
- •Void main()
- •Void main()
- •Void main()
- •Int length;
- •Объектно-ориентированное программирование и приложения с графическим интерфейсом
- •Void main(void)
- •Int MyFunc(int, int);
- •Void NewFunc(void);
- •Void main()
- •Void FuncOut();
- •Void prob::FuncOut()
- •Void main()
- •Void main()
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Int pascal
- •Int nCmdShow)
- •Void __fastcall tForm1::Timer1Timer(tObject *Sender)
- •Void __fastcall tForm1::okClick(tObject *Sender)
- •Int I,step;
- •Введение в численные методы
Void main()
{
int i=0; char S[]="This is string";
while(S[i++]!='\0’);
printf(“%d",- -i);
}
Массив S инициализирован в виде строки, заключенной в кавычки. Определенные таким образом символьные массивы, которые будем называть строками, несколько отличаются от массивов, определенных стандартным способом. Во-первых, для них существует целый набор функций, описанных в заголовочном файле string.h, о которых мы поговорим позже. Во-вторых, в конец строки всегда добавляется специальный символ '\0' — признак конца строки. Программисту не нужно заботиться об этом символе, поскольку он вставляется системой автоматически, но помнить о его существовании в конце массива следует. Его присутствие может оказаться полезным, как это использовано в нашей программе. Цикл while здесь каждый раз проверяет, достигли ли мы конца строки, и увеличивает счетчик i на единицу. После выхода из цикла счетчик имеет значение, равное количеству символов в строке, с учетом символа конца строки. Таким образом, в результате работы программы будет напечатана длина строки - в данном случае 14, число символов, помещенных между кавычками (включая два символа пробела).
Укажем, что числовой эквивалент символа '\0' есть 0. По этой причине понятно, что условие в цикле можно упростить до вида S[i++]! = 0. Автор был бы безмерно счастлив, если бы в этот момент внимательный читатель воскликнул: "А почему не просто while(S[i++]) ?". Он прав! Так и сделайте.
В упомянутом заголовочном файле string.h имеется довольно много строковых функций. Рассмотрим некоторые из них. Функция gets(Имя) осуществляет ввод строки с консоли. Здесь Имя есть имя символьного массива, в который будет записана вводимая с клавиатуры строка. Сам ввод осуществляется следующим образом. Набирается строка целиком так, как она должна выглядеть. После набора нажимается клавиша Enter. Простейшая программа, инициализирующая строку вводом с клавиатуры, выглядит так:
#include< string.h >
Void main()
{
char S[100]; gets(S);
}
Здесь максимальная длина вводимой строки - 100 символов. При попытке ввода более длинной строки никакой ошибки система не обнаружит, но возникнет уже описанная ситуация с выходом за границы массива с непредсказуемыми последствиями.
Функция puts(Имя) выводит на экран строку, описанную символьным массивом, названным как Имя. Независимо от объявленной длины массива, строка выводится до символа конца строки. Следующая программа производит вывод на экран строки, инициализированной при описании:
#include< string.h >
Void main()
{
char SYM[]=”QWER’\n’qwer";
puts(SYM);
}
В результате работы программы сначала печатается часть строки QWER, затем печатается символ перевода строки, то есть просто происходит переход на новую строчку, где печатается остальная часть qwer.
Еще одна полезная функция из заголовочного файла string.h позволит определить длину строки без "самодельных" ухищрений, которые мы предпринимали. Это функция strlen(Имя), возвращающая целое число, равное длине строки, опять же от начала до признака конца. Теперь вместо составленной ранее программы можно предложить более простую: