Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Небольшая прога по методам доступа к элементам массива http://www.cyberforum.ru/cpp-beginners/thread243378.html
Смысл такой, имеется трехмерный массив A. Данные считываются с файла(тут все верно). Хотелось бы обращаться к элементам данного массива по индексам, начинающимся не с нуля как обычно, а задать самому интервалы индексирования(A). Видимо чего-то недопонел: программа не работает. Код полностью: #include<stdio.h> #include<conio.h> #include<iostream.h> void main() { int A,
C++ нужно проверить и поставить арифметический знак между двумя числами здрасте=) помогите написать код, если мона с комментами на эту задачу: Вводится три числа. Вам нужно проверить можно ли поставить арифметический знак между двумя числами, чтобы в результате выполнения действия получилось третье. Входные данные Вводится три числа:  - 1000000000 ≤ a, b, c ≤ 1000000000. Выходные данные Выведите равенство полностью. Знаки (+ плюс, - минус, * умножить, /... 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-Решить задачу, используя структуру содержащую члены-данные и члены функции На основе данных входного файла составить список студентов, включающий фамилмю, факультет, курс, группу, 5 оценок.Вывести в новый файл... подробнее

Показать сообщение отдельно
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
15.02.2011, 20:06     ВопросЫ по функциям для работы со строками с++
Вот я нашел большинство (если не все) стандартные функции 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 или через цикл?
Надеюсь всё правильно написал с точки зрения терминологии
Спасибо за любые предположения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru