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

Найти самую длинную последовательность цифр в строке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строки (перестановка 1 и последней буквы каждого слова) http://www.cyberforum.ru/cpp-beginners/thread1533072.html
Разработать программу, которая в заданной строке, представляющей собой некоторые предложение, меняет местами первую и последнюю букву каждого слова (слова разделены одним или несколько пробелами). Помогите новичку плизз)
C++ Чтение матрицы из файла Есть программа ,но она неправильно работает. В чем проблема я никак не могу понять( С первой стройчкой все нормально, а вот с остальными какой-то бред( Даны два целых числа I, J и файл вещественных чисел, содержащий ненулевую часть верхнетреугольной матрицы (по строкам). Вывести порядок матрицы и ее элемент, расположенный в I-й строке и J-м столбце (строки и столбцы нумеруются от 1). Если... http://www.cyberforum.ru/cpp-beginners/thread1533045.html
Какие темы нужно знать, чтобы начать работать с DirectX C++
День добрый! Прочитал уже почти 3 книги "для начинающих", множество статей, немного умею работать с WinAPI, пробую сам писать простые программки, но не могу осилить всё, что связано с окнами и обработкой событий. Пробовал читать книги и уроки по DirectX, но там нет никакой "плавности", что ли. Сразу начинают с огромного кода по созданию окна, но ведь надо понимать ЧТО пишешь, а не просто...
C++ Сортировка объектов вектора
class Words { public: int number; // Номер в словаре для быстрого поиска string word; // Само слово vector <int> synonyms; // Номера синонимов в словаре Words() :word(""), number(-1), synonyms(0) {} };
C++ Ввод в строку http://www.cyberforum.ru/cpp-beginners/thread1532995.html
начали изучать с++ все время писал на C# как мне кажется язык после C# вообще отвратный. Подскажите как мне обычно звписать текст в строку? string тут вообще нету(я не говорю то что его нету вообще) только кот чар откопал думаю с ним и будем работать. #include <stdio.h> int main(void) { char str; scanf_s("%s", str); return 0; }
C++ C2440 "Невозможно преобразовать double в double" // ConsoleApplication3.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <stdlib.h> #include <iomanip> using namespace std; int main() { подробнее

Показать сообщение отдельно
Yurii92_X
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 18
20.09.2015, 16:25  [ТС]     Найти самую длинную последовательность цифр в строке
Цитата Сообщение от Геомеханик Посмотреть сообщение

#include <iostream>
#include <cctype>

//первый вариант
const char* find_maxseq(const char* s, size_t& n, int (*cmp)(int)){
size_t m;
const char* p, *f = NULL;
n = 0;
while(*s){
while(*s && !(*cmp)(*s))
++s;
p = s;
while(*p && (*cmp)(*p))
++p;
m = (size_t)(p - s);
if(m > n){
n = m;
f = s;
}
s = p;
}
return f;
}

//второй вариант
char* find_maxseq(char* s, int (*cmp)(int)){
size_t m, n = 0;
char* p, *f = NULL;
while(*s){
while(*s && !(*cmp)(*s))
++s;
p = s;
while(*p && (*cmp)(*p))
++p;
m = (size_t)(p - s);
if(m > n){
n = m;
f = s;
}
s = p;
}

if(f != NULL)
*(f + n) = '\0';
return f;
}

int main(void) {
char s[] = "bla-bla(123456), bla123456789, 89 end9";

size_t n;
const char* p = find_maxseq(s, n, &std::isdigit);
if(p != NULL){
std::cout.write(p, n);
std::cout << std::endl;
}

char* t = find_maxseq(s, &std::isdigit);
if(t != NULL)
std::cout << t << std::endl;
return 0;
}
или я дурак или лыжи не едут (1 быстрее )
у меня не работает
Microsoft VS 2010 Express
 
Текущее время: 13:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru