|
|||
const intlen_str=100;. char msg[len_str];. const intlen_str=100;. char msg[len_str] =Новая строка;. char *p= new char[len_str];. using namespace std;. int main(). const int n = 80;. char s[n];. return 0;const intlen_str=100; char msg[len_str]; При задании длины необходимо учитывать завершающий нуль-символ. Например, в строке, приведенной выше, можно хранить не 100 символов, а только 99. Строки можно при описании инициализировать строковыми константами, при этом нуль-символ в позиции, следующей за последним заданным символом, формируется автоматически: const intlen_str=100; char msg[len_str] ="Новая строка"; Если строка при определении инициализируется, ее размерность можно опускать (компилятор сам выделит память, достаточную для размещения всех символов строки и завершающего нуля): char msg[ ] ="Новая строка";//13 символов Для размещения строки в динамической памяти надо описать указатель на char, а затем выделить память с помощью new или mallос (первый способ предпочтительнее). char *p= new char[len_str]; Естественно, что в этом случае длина строки может быть переменной и задаваться на этапе выполнения программы. Динамические строки, как и другие динамические массивы, нельзя инициализировать при создании. Для ввода-вывода строк используются как уже известные нам объекты cin и cout, так и функции, унаследованные из библиотеки С. Рассмотрим сначала первый способ: #include "stdafx.h" #include <iostream> using namespace std; int main() { const int n = 80; char s[n]; cin >> s; cout << s << endl; return 0; } Строки вводится точно так же, как и переменные других типов. При вводе строки из нескольких слов, программа выведет только первое слово. Это связано с тем, что ввод выполняется до первого пробельного символа (то есть пробела, знака табуляции или символа перевода строки '\n') Если требуется ввести строку, состоящую из нескольких слов, в одну строковую переменную, используются методы getline или get класса istream, объектом которого является cin. #include "stdafx.h" #include <iostream>
|
|||
|