Для тестирования программы ввести строку с клавиатуры
Словом считать последовательность символов, состоящую из букв или цифр, справа и слева ограниченную пробелами или знаками препинания. Первое и последнее слово строки ограничены пробелами или знаками препинания только с одной стороны.
(Из текста выбрать числа и записать их в массив)
C/C++
Строки с++ помогите пожалуйста
#include <iostream>
#include <string>
#include <regex>
#include <vector>
using namespace std;
int main() {
cout << "String: ";
string str;
getline(cin, str);
smatch sm;
const regex re(R"(\d+)");
vector<string> box;
while (regex_search(str, sm, re)) {
box.push_back(sm.str());
str = sm.suffix();
}
const auto length = box.size();
auto arr = new unsigned long long[length];
for (size_t i = 0; i < length; ++i) arr[i] = stoull(box[i]);
cout << "Numbers: ";
for (size_t i = 0; i < length; ++i) cout << arr[i] << ' ';
puts("");
delete[] arr;
}
#include <string>
#include <regex>
#include <vector>
using namespace std;
int main() {
cout << "String: ";
string str;
getline(cin, str);
smatch sm;
const regex re(R"(\d+)");
vector<string> box;
while (regex_search(str, sm, re)) {
box.push_back(sm.str());
str = sm.suffix();
}
const auto length = box.size();
auto arr = new unsigned long long[length];
for (size_t i = 0; i < length; ++i) arr[i] = stoull(box[i]);
cout << "Numbers: ";
for (size_t i = 0; i < length; ++i) cout << arr[i] << ' ';
puts("");
delete[] arr;
}
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
const char* num = "1234567890";
const char* del = " !,;:.?";
size_t str_to_int(string& nums)
{
size_t numer{};
int len = nums.length(), it=len-1;
while (it >= 0) {
numer += (nums[it] - 48) * pow(10, len-it-1);
--it;
}
return numer;
}
string str_to_num (string& in)
{
static size_t it = 0;
int pos, find;
string res;
while (it < in.length())
{
pos = in.find_first_of(del, it);
if (pos == it) { it++; continue; } //пропуск повторяющихся разделителей
if (pos == string::npos) pos = in.length(); //если разделителя не найдено считать им конец строки
find = in.find_first_not_of(num, it);
if (find==string::npos||find>=pos) //если в слове только цифры
{
res.append(in, it, pos-it);
it = pos;
return res;
}
else it = pos;
}
return res;
}
int main()
{
vector <size_t> nums;
string str, output;
getline(cin, str);
while ((output = str_to_num(str)).length()) nums.push_back(str_to_int(output));
cout << "Find " << nums.size() << " numbers\n";
if (nums.size()) for (size_t& i : nums) cout << i << endl;
}
#include <sstream>
#include <vector>
using namespace std;
const char* num = "1234567890";
const char* del = " !,;:.?";
size_t str_to_int(string& nums)
{
size_t numer{};
int len = nums.length(), it=len-1;
while (it >= 0) {
numer += (nums[it] - 48) * pow(10, len-it-1);
--it;
}
return numer;
}
string str_to_num (string& in)
{
static size_t it = 0;
int pos, find;
string res;
while (it < in.length())
{
pos = in.find_first_of(del, it);
if (pos == it) { it++; continue; } //пропуск повторяющихся разделителей
if (pos == string::npos) pos = in.length(); //если разделителя не найдено считать им конец строки
find = in.find_first_not_of(num, it);
if (find==string::npos||find>=pos) //если в слове только цифры
{
res.append(in, it, pos-it);
it = pos;
return res;
}
else it = pos;
}
return res;
}
int main()
{
vector <size_t> nums;
string str, output;
getline(cin, str);
while ((output = str_to_num(str)).length()) nums.push_back(str_to_int(output));
cout << "Find " << nums.size() << " numbers\n";
if (nums.size()) for (size_t& i : nums) cout << i << endl;
}
Похожие вопросы
- Работа с матрицами. Нужно найти сумму элементов каждой строки. Помогите пожалуйста ????????
- Помогите пожалуйста с задачей со строками на С++
- Написать код на языке с++. Определить позицию начала в строке s слова с номером n. помогите пожалуйста
- Помоги пожалуйста с программой в С++
- Помогите пожалуйста написать программу на Си
- Помогите пожалуйста уже голову сломал, ничего не получается, когда перегружаю шаблонный оператор << ,
- Помогите пожалуйста написать код.(C++)
- Задачки по С++ (помогите пожалуйста кто какие сможет)
- Помогите пожалуйста с программой
- Помогите пожалуйста с C++