C-строки
Материал из Вики ИТ мехмата ЮФУ
Версия от 20:03, 27 октября 2012; Ulysses (обсуждение | вклад) (Новая страница: «=== C-строки === <source lang="cpp">// Вычисление длины строки int string_length(char * s) { int len = 0; // Цикл закон…»)
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;
}
}