БЕСПЛАТНОЕ РЕШЕНИЕ ЗАДАЧ

Функции работы со строками и символами в C++

Строка - массив символов, заканчивающийся нуль-символом. В С++ две возможности работы со строками:
• функции, унаследованные из библиотеки С (заголовочный файл или );
• библиотечный класс C++ string, предоставляющий более широкие возможности представления, обработки и контроля строк.

Библиотека С++ содержит функции:
• копирования строк (strcpy, strncpy);
• сравнения (strcmp, strncmp);
• объединения строк (strcat, strncat);
• поиска подстроки (strstr);
• поиска вхождения символа (strchr, strrchr, strpbrk);
• определения длины строки (strlen)
• другие.

В заголовочных файлах и содержатся функции преобразования строк в числа (обратные преобразования можно сделать с помощью функции sprintf):
• double atof(const char* p) преобразует переданную строку в double;
• int atoi (const char* p) преобразует переданную строку в int;
• long atol (const char* p) преобразует переданную строку в long.

Важно. Пробелы и табуляции в начале строки пропускаются.
Важно. Преобразование прекращается при встрече недопустимого символа или конца строки.
Важно. Если строку нельзя преобразовать в число, возвращается 0. Если число выходит за пределы диапазона данного типа, переменной еrrno (заголовочный файл <сеrrno>) присваивается значение ERANGE и возвращается допустимое число.

Пример (программа заполняет массив типа double из строки):

#include 
#1nclude 
#include 
int maln(){
char s[] = "2, 38.5, 70, 0, 0, 1", *p = s;
double m[10];
int i = 0;
do{
m[i++] = atof(p);
if (i > 9)break;
}while(p = strchr(p, ‘.’, p++);
for( int к = 0; к < i; k++) printf("^5.2f ", m[k]);
return 0;
}
Для работы с символами в стандартной библиотеке (заголовочные файлы и ) имеются функции:
photo
Функции принимают величину типа int и возвращают значение true, если условие выполняется.

Важно. Рекомендуется пользоваться стандартными функциями, а не писать собственные циклы проверки, так как это снижает количество ошибок в программе.

В библиотеке есть функции tolower и toupper, переводящие символ латинского алфавита соответственно в нижний и верхний регистр.

Для каждой из перечисленных функций есть ее аналог для многобайтных символов типа wchar_t, содержащий в названии букву w.

Оставить комментарий

Вы должны быть авторизованы , чтобы оставить или оценить комментарий.

Онлайн всего: 11
Гостей: 11
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте