Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Пример 2. Использование завершающего нуля




Наличие в конце строк завершающего нуля часто помогает упростить различные операции. Так, приводимая ниже программа (Рис. 5.2) преобразует строчные буквы строки в прописные и обратно:

 

// convertStr.cpp: Defines the entry point for the console application.

//

// Преобразование строчных символов строки в прописные и обратно.

 

#include "stdafx.h"

#include <iostream>

#include <cstring>

#include <cctype>

using namespace std;

 

int main() {

char str[80];

int i;

 

strcpy(str, "this is a test");

 

// Преобразование строчных символов строки в прописные

for(i = 0; str[i]; i++)

str[i] = toupper(str [i]);//Цикл завершается,

//когда индексируется завершающий ноль.

cout << str << "\n\n";

 

// Преобразование прописных символов строки в строчные

for(i = 0; str[i]; i++)

str[i] = tolower(str [i]);//Цикл завершается,

//когда индексируется завершающий ноль.

cout << str;

char ch;

cin >> ch;

return 0;

}

Вывод этой программы:

 

Рис. 5.2.

Приведенная программа использует библиотечные функции toupper(), (tolower()), которые возвращают соответственно прописной или строчный эквивалент своего символьного аргумента, чем и осуществляется преобразование всех символов строки. Эти функции использует заголовок <cctype>.

Обратите внимание на то, что в качестве условия для цикла выступает просто массив, индексируемый управляющей переменной. Здесь используется то обстоятельство, что любое ненулевое значение является истинным. Вспомним, что все коды символов не равны 0, но любая строка завершается нулем. Поэтому наш цикл и выполняется до тех пор, пока он не встретится с нулевым символом, когда str[i] оказывается равным 0. Поскольку завершающий ноль отмечает конец строки, цикл останавливается в точности там, где и требуется. В профессионально написанных С++ - программах вы увидите массу примеров использования завершающего строку нуля аналогичным образом.

 

Массивы строк

 

Особой формой двумерного массива является массив строк. Такие массивы широко используются в программировании. Для создания массивов строк используется двумерный символьный массив, в котором левый индекс характеризует число строк, а правый - их максимальную длину. Например, приведенное ниже объявление создает массив из 30 строк, каждая из которых может иметь длину до 80 символов:

 

char str_array[30][80];

 

Обратиться к индивидуальной строке этого массива не составляет труда: вы просто указываете один левый индекс. Например, приведенное ниже предложение вызывает функцию gets() для заполнения третьей строки в str_array:

 

gets(str_array[2]);

 

Чтобы получить доступ к индивидуальному символу в третьей строке, вы используете предложение вроде следующего:

 

cout << str_array[2] [3];

 

В результате на экран выводится четвертый символ третьей строки.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных