Форум программистов, компьютерный форум, киберфорум
Наши страницы

ВопросЫ по функциям для работы со строками с++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Небольшая прога по методам доступа к элементам массива http://www.cyberforum.ru/cpp-beginners/thread243378.html
Смысл такой, имеется трехмерный массив A. Данные считываются с файла(тут все верно). Хотелось бы обращаться к элементам данного массива по индексам, начинающимся не с нуля как обычно, а задать самому...
C++ нужно проверить и поставить арифметический знак между двумя числами здрасте=) помогите написать код, если мона с комментами на эту задачу: Вводится три числа. Вам нужно проверить можно ли поставить арифметический знак между двумя числами, чтобы в результате... http://www.cyberforum.ru/cpp-beginners/thread243368.html
среднее арифметическое C++
Найти среднее арифметическое значений функции f(x) в точках a, b, (a+b)/2 используя обращение к функции f=(x*sin⁡ π/4) / (1-2x*(cos⁡ π)/4+x^2).
C++ Работа с файлами
Сведения об ученике состоят из его имени и фамилии и названия класса (года обучения и буквы), в котором он учится. Дан файл F, содержащий сведения об учениках школы. Выяснить, имеются ли в школе...
C++ Задача про ранец http://www.cyberforum.ru/cpp-beginners/thread243347.html
Помогите решить задачу на С Есть вес предметов и ценность, а также есть максимальный вес, который можно загрузить в ранец! Необходимо заполнить ранец так, чтобы стоимость предметов была...
C++ Структуры 1-решить задачу, используя структуру point для хранения координат точки : Наийти три разлинные точки из заданного множества точек, образющих треугольник наибольшего периметра. 2-Решить задачу,... подробнее

Показать сообщение отдельно
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235

ВопросЫ по функциям для работы со строками с++ - C++

15.02.2011, 20:06. Просмотров 6975. Ответов 18
Метки (Все метки)

Вот я нашел большинство (если не все) стандартные функции C++ для работы со строками:
memset (void*, int, size_t) - устанавливает n первых байтов в указанное значение;
strcat(char*, const char*) - добавляет одну строку к другой;
strchr(const char*, int) - ищет первое вхождение указанного символа в строке;
strcmp(const char*, const char*) - сравнивает две строки (0 - равны строки, отрц. - первая строка меньше второй, полож. первая строка больше второй);
strcpy(char*, const char*) - копирует одну строку в другую;
strcspn(const char*, const char*) - ищет первое вхождение одного из символов одной строки в другой (возвращается позиция);
strlen(const char*) - возвращает длину строки (без нулевого символа конца строки);
strncat(char*, const char*, size_t) - добавляет n символов одной строки к другой.
strncmp(const char*, const char*, size_t) - сравнивает n первых символов;
strncpy(char*, const char*, size_t) - копировать n первых символов одной строки в другую;
strpbrk(const char*, const char*) - ищет первое вхождение одного из символов одной строки в другой;
strrchr(const char*, int) - поиск символа с конца;
strspn(const char*, const char*) - поиск первого символа не входящего в указанную строку (возвращается номер первого символа);
strstr(const char*, const char*) - поиск первого вхождения подстроки;
strtok(char*, const char*) - возвращает следующий токен (элемент разбора).
Я вычитал что функция memcpy копирует за такт сразу n байт (вроде как зависит от разрядности ос) из одного массива char в другой. По сути получается быстрее, нежели я через тот же цикл for буду производить копирование побайтно, каждый раз впридачу инкрементируя ещё и счетчик (переменную int i).
Что касается остальных функций - непонятно, в интернете приведены какраз самописные альтернативы через цикл for, но про то, что в итоге они окажутся медленнее стандартных - не предупреждается.
Если вреальности стандартные функции реализованы через for - получается когда мне нужно поочереди провести операцию над, к примеру, сотней строк - получится быстрее самому через цикл сделать, т.к. в этому случае не будет происходить каждый раз выделение памяти под счетчик в цикле, для всех копирований я могу один раз определить счетчик (переменную int i) и поочереди использовать его в циклах.

Вопрос, что быстрее - 100 раз использовать strcat или 100 раз через цикл for побайтно добавлять одну строку к другой, используя на все 100 операций один раз введенный счетчик int i? И второй вопрос, как работают стандартные функции, по принципу memcpy или через цикл?
Надеюсь всё правильно написал с точки зрения терминологии
Спасибо за любые предположения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru