C-строки — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Новая страница: «=== C-строки === <source lang="cpp">// Вычисление длины строки int string_length(char * s) { int len = 0; // Цикл закон…»)
 
(нет различий)

Версия 20:13, 27 октября 2012

C-строки

// Вычисление длины строки
int string_length(char * s) {
    int len = 0;

    // Цикл закончится при достижении нулевого байта, обозначающего конец строки
    for ( ; *s != 0; ++s)
        ++len;
    
    return len;
}

// Каждая латинская буква, кроме 'z', меняется на следующую в алфавите
void shift_string(char * s)  {
    for ( ; *s; ++s) {             // Ненулевое значение кода символа преобразуется к True
                                   // Этот заголовок цикла работает также, как в string_length
        if ('a' <= *s && *s < 'z')
            ++(*s);                // Увеличение кода символа на единицу
    }
}

Третий, самый краткий и широко распространённый вариант цикла по всей строке выглядит так:

while (*s++) {
    // работа с очередным символом строки: *s
}

Работа с массивами через указатели

void write_array(int *a, int sz) {
    for(int *p = a; p != a + sz; ++p) {
        cout << *p << " ";  // p последовательно указывает на все элементы массива
    }
    cout << endl;
}

void read_array(int *a, int sz) {
    for(int *p = a; p != a + sz; ++p) {
        cin >> *p;
    }
}