C/C++ Строки, таблица ASCII.
Для взаимодействия с пользователями и вывода отладочной информации удобно использовать строки, например “Hello World” и т.д.
Рассмотрим, что из себя представляет строка, что такое строка в стиле C, ее замену в C++.
Для начала стоит сказать, что компьютер не понимает букв, ему известен только двоичный код, поэтому каждой букве/цифре/символу поставили в соответствие двоичный код, он называется таблицей ASCII символов, в ней первые 0-127 символов используются для английской раскладки клавиатуры, остальные под локальную.
Напишем простой код и посмотрим в консоли результат
int j=0;
for(unsigned char i=0;i<255;i++)
{
cout<<"Symbol "<<j<<"= \t"<<i<<endl;
j++;
}
Хорошо, что такое символ стало понятно, но как выводить строку?
Для этого используется массив символов.
Строки в стиле C
Существует так называемая «строка в стиле C» — конце такого массива принято ставить «завершающий / терминирующий ноль»
Например:
char Text[6] = {‘H’,’e’,’l’,’l’,’o’, ‘\0’};
Впрочем так писать долго, поэтому при использовании записи
char Text[6] = “Hello”; завершающий ноль будет подставлен автоматически.
Строки в языке C++
В языке C++ помимо «строк в стиле C» используется библиотека string
#include <string>
благодаря которой можно создать объект класса string (считаем что переменную)
string S = «HELLO»;
В чем плюс класса/переменной типа string – можно не задумываться о том, что физически это массив и выполнять операции как с обычной переменной, например если в C строке мы захотим объединить 2 строки (это называется конкантенация строк)
char Text1[] = “Hello ”;
char Text2[] = “World”;
char Text3[7+6-1];
Нам нужно:
1-создать массив размером Text1+Text2 -1 //-1 т.к. 2 терминирующих нуля
2 -досчитать до конечного нуля в массиве Text1
3 -начать копирование массива Text2 (с терминирующим нулем)
В C++ с использованием класса string достаточно просто создать переменную и сложить 2 строки типа string.
string Text1= “Hello ”
string Text2= “World”
string Text3= Text1+ Text2;
Для работы со строками есть некоторые удобные функции:
Чтобы использовать эти функции, необходимо подключать заголовочный файл string.h.
strlen() — вычисления длины строки (считает байты до \0, не включая его)
strcat() – объединения/конкантенация двух строк (описано выше)
strchr() — поиска символа в строке
strstr() — поиска подстроки в строке:
Touche. Great for my understanding. Keep up the great spirit.