Похожие презентации:
lec8
1.
Символы и строкиС++
2.
СимволыСимвол – элементарная единица, некоторый набор которых несет
определенный смысл.
char symbol = 'a';
Строки в С++ представляются как массивы элементов типа char,
заканчивающиеся нуль-терминатором '\0' называются С
строками или строками в стиле С.
char string[5];
char string[5] = "abcd";
char string[5] = {'a', 'b', 'c', 'd', '\0'};
char string[] = "abcd";
3.
Пример4.
Функции работы с символами и строкамиФункция
strlen(имя_строки)
strcpy(s1,s2)
strncpy(s1,s2, n)
strcat(s1,s2)
strncat(s1,s2,n)
strcmp(s1,s2)
strncmp(s1,s2,n)
stricmp(s1,s2)
strnicmp(s1,s2,n)
Пояснение
определяет длину указанной строки, без учёта нуль-символа
Копирование строк
выполняет побайтное копирование символов из строки s2 в строку s1
выполняет побайтное копирование n байт из строки s2 в строку s1. возвращает значения s1
Конкатенация строк
объединяет строку s2 со строкой s1. Результат сохраняется в s1
объединяет n символов строки s2 со строкой s1. Результат сохраняется в s1
Сравнение строк
сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 – если строки
эквивалентны, -1– если s1<s2, 1 – если s1>s2 С учётом регистра
сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 – если
строки эквивалентны, -1 – если s1<s2, 1 – если s1>s2 С учётом регистра
сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 – если строки
эквивалентны, -1 – если s1<s2, 1 – если s1>s2 Без учёта регистра
сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 – если
строки эквивалентны, -1 – если s1<s2, 1 - если s1>s2 Без учёта регистра
5.
Функции работы с символами и строкамиФункция
isalnum(c)
isalpha(c)
isdigit(c)
islower(c)
isupper(c)
isspace(c)
toupper(c)
Пояснение
Обработка символов
возвращает значение true, если с является буквой или цифрой, и false в других
случаях
возвращает значение true, если с является буквой, и false в других случаях
возвращает значение true, если с является цифрой, и false в других случаях
возвращает значение true, если с является буквой нижнего регистра, и false в
других случаях
возвращает значение true, если с является буквой верхнего регистра, и false в
других случаях
возвращает значение true, если с является пробелом, и false в других случаях
если символ с, является символом нижнего регистра, то функция возвращает
преобразованный символ с в верхнем регистре, иначе символ возвращается без
изменений.
6.
Функции работы с символами и строкамиФункция
strchr(s,c)
strcspn(s1,s2)
strspn(s1,s2)
strprbk(s1,s2)
atof(s1)
atoi(s1)
atol(s1)
Пояснение
Функции поиска
поиск первого вхождения символа с в строке s. В случае удачного поиска возвращает указатель на
место первого вхождения символа с. Если символ не найден, то возвращается ноль.
определяет длину начального сегмента строки s1, содержащего те символы, которые не входят в
строку s2
возвращает длину начального сегмента строки s1, содержащего только те символы, которые
входят в строку s2
Возвращает указатель первого вхождения любого символа строки s2 в строке s1
Функции преобразования (stdlib.h)
преобразует строку s1 в тип double
преобразует строку s1 в тип int
преобразует строку s1 в тип long int
#include <cstring>
#include <string.h>
7.
Пример#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char s2[28] = "Hello, I am glad to see you"; // инициализация строки s2
cout << strlen(s2) << endl; // вычисление длины строки s2
char s1[28]; // резервируем строку для функции strcpy()
strcpy(s1,s2); // содержимое строки s2 скопировалось в строку s1
cout << "s1 = " << s1 << endl; // вывод содержимого строки s1
char s3[6]; // резервируем строку для следующей функции
strncpy(s3, s2, 5); // копируем 7 символов из строки s2 в строку s3
cout << strlen(s3) << endl;
cout << "s3 = " << s3 << endl; // вывод содержимого строки s3
return 0;
}
8.
Пример#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char s1[29] = "I am ";
char s2[] = "programmer on the C++!!!";
strcat(s1,s2); //объединяем строки s1 и s2, результат сохраняется в s1
cout << s1 << endl;
char s3[26] = "I am a good ";
strncat(s3,s2,10);
strcat(s3,"!!!");
cout << s3 << endl;
return 0;
}
9.
Пример#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char s1[] = "I am glad to see you";
char s2[] = "Hello, I am glad to see you";
char s3[] = "Hello";
cout << "Is s1 == s1 ? " << strcmp(s1,s1) << endl; // строка s1 = s1
cout << "Is s1 == s2 ? " << strcmp(s1,s2) << endl; // строка s1 > s2
cout << "Is s2 == s1 ? " << strcmp(s2,s1) << endl; // строка s2 < s1
cout << "Is s2 == s3 ? " << strcmp(s2,s3) << endl; // строка s2 > s3
char s4[] = "cat";
char s5[] = "dog";
cout << "Is s4 == s5 ? " << strcmp(s4,s5) << endl; // строка s4 < s5
char s6[] = "Kate";
char s7[] = "Tom";
cout << "Is s6 == s7 ? " << strcmp(s6,s7) << endl; // строка s6 < s7
char s8[] = "tom";
cout << "Is s7 == s8 ? " << strcmp(s7,s8) << endl; // строка s7 < s8
cout << "Is s7 == s8 ? " << stricmp(s7,s8) << endl; // строка s7 = s8 без учета регистра
return 0;
}
10.
Пример#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char symbol = 'd', digit = '9', space = ' ', character = '#';
cout << symbol << " - it is digit or alpha?: ";
isalnum(symbol) ? cout << "true\n" : cout << "false\n";
cout << symbol << " - it is alpha?:
";
isalpha(symbol) ? cout << "true\n" : cout << "false\n";
cout << digit << " - it is digit?:
";
isdigit(digit) ? cout << "true\n" : cout << "false\n";
cout << space << " - it is space?:
";
isspace(space) ? cout << "true\n" : cout << "false\n";
cout << symbol << " - it is lower alpha?:
";
islower(symbol) ? cout << "true\n" : cout << "false\n";
cout << symbol << " - it is upper alpha?:
";
isupper(symbol) ? cout << "true\n" : cout << "false\n";
return 0;
}
11.
Класс stringЧтобы использовать возможности класса string, нужно
подключить библиотеку <string> и пространство имен std.
#include <string>
using namespace std;
12.
Конструкторы класса string13.
Преимущества класса stringвозможность обработки строк стандартными операторами
C++ (=, +, = =, <> и т.п.);
обеспечение лучшей надежности программного кода;
обеспечение строки, как самостоятельного типа данных.
14.
Операторы применимые к классу string= – присваивание
+ – конкатенация (объединение строк)
+= – присваивание с конкатенацией
== – равенство
!= – неравенство
< – меньше
<= – меньше или равно
> – больше
>= – больше или равно
[ ] – индексация
15.
Примеры16.
Методы класса stringУ строк есть разные методы, многие из них можно использовать
несколькими разными способами (с разным набором
параметров).
Рассмотрим эти методы на примерах.