Similar presentations:
Строки в Си
1.
Строки в Си2.
Начнём издалека• String в плюсах
3.
Что мы можем делать с обычным string вс++?
• Складывать две строки (конкатенация) через плюс:
string a = “hello” + “123”; // теперь будет строка hello123
string a = “”;
string a+= “hello”;
• Присваивать одну строку другой:
string b = “123”;
string h = b;
4.
Но что под капотом у этих операций + и =?• две функции strcat() и strcpy()
• char* string
5.
ASCII таблица6.
Зачем это табло?)(• Там есть представление числа в int, 16-ой системе счисления,
бинарное, восьмеричное
primer 4)
7.
Особенности строки в Си• Это массив символов
• В конце стоит нуль-терминатор (‘\0’)
8.
Как может объявляться этот монстр?• как строковые константы
• как массивы символов (char rofl[32])
• через указатель на символьный тип
char* str;
• как массивы строк
char joke[50][50]
9.
Объявлять можно по-разному массивы• char rofl[50] = “Яспер Мажор”
• char rofl[50] = {‘Я’, ‘с’, ‘п’, ‘е’, ‘р’, ‘ ’, ‘М’, ‘а’, ‘ж’, ‘о’, ‘р’}
10.
Вывод при помощи printf()• Один символ - %c
• Вся строка - %s
• Примеры:
char str[3] = “12”
printf(“%c”, str[1]); // выведет один символ: 2
printf(“%s”, str); // выведет всю строку 12
11.
Ввод строк• Через рофельную функцию Луцика, ща покажу ржаку
• Через fgets(str, len, stdin) – крутой ввод строки
• gets(str) (устаревшая, там пердёж с буфером, так шо не советую)
12.
Ну в аски мало букавок(поэтому можно и юникод потыкать
• https://home.unicode.org/
• тип для Unicode – wchar_t
13.
Функции для строк• strcpy(str1, str2) – скопировать из str2 в str1
• strcat(str1, str2) – конкатенация строк (сложили тупа 1+1 = 11)
• atoi(str) – обращает строку в число int, ща примерчик будет
• itoa(integer) – из строки в число