3.27M
Category: programmingprogramming

Строки в Си

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) – из строки в число

14.

потом скину блинб
English     Русский Rules