Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пример 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. Поскольку завершающий ноль отмечает конец строки, цикл останавливается в точности там, где и требуется. В профессионально написанных С++ - программах вы увидите массу примеров использования завершающего строку нуля аналогичным образом.





Дата публикования: 2014-12-11; Прочитано: 194 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...