Разделить строку пробелом в зависимости от написания
Нужно добавлять пробел если строка без пробела. Например несколько строк встречающихся в одном и том же файле:
1. 22мкФ 2. 20 мкФ 3. 10пФ 4. 3,3 кОм 5. 100Ом
Суть в том, что нужно добавить пробел между цифрой и буквой в случае если пробела нет. То есть в итоге должно получиться так:
1. 22 мкФ 2. 20 мкФ 3. 10 пФ 4. 3,3 кОм 5. 100 Ом
Я попытался найти индекс первого вхождения буквы и добавлять пробел перед ней, но почему-то пробел не добавляется.
int indx = CmpntLst[i].getValue().IndexOf(Regex.Match(CmpntLst[i].getValue(), @"[A-Za-zА-Яа-я]").Value); CmpntLst[i].setValue(CmpntLst[i].getValue().Insert(indx, " "));
Разделить строку по пробелам
Разбить строку на масив подстрок по пробелам
написать прогу которая разбивает строку на масив подстрок по пробелам типа был массив: завтра.
Функция, которая разделяет строку по пробелам. В массив добавляются лишние элементы
Здравствуйте. Написал функцию, которая разделяет строку по пробелам (или какому-либо другому.
Разделить строку по пробелам (\s+)
Помнится мне на питоне такой код выполнялся без вопросов, а на c# подчёркивает (‘\s+’) выдаёт.
Разделить строку на слова по пробелам
В общем, есть строка такого формата: Слово Число:Число Слово Длина слов не известна. Числа от 0.
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
Сообщение было отмечено Памирыч как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include #include #include int main(int argc, char **argv) { const int size = 10; int *array = (int*) malloc(sizeof(int) * size); const char *fileName = "C:/array.txt"; int i; FILE *file = fopen(fileName, "w"); srand(time(NULL)); for(i = 0; i size; i++) { array[i] = rand() % 100; fprintf(file, "%d\n", array[i]); } fclose(file); free(array); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include int main(int argc, char **argv) { const int size = 10; int *array = (int*) malloc(sizeof(int) * size); const char *fileName = "C:/array.txt"; int i; FILE *file = fopen(fileName, "r"); for(i = 0; i size; i++) fscanf(file, "%d\n", &array[i]); for(i = 0; i size; i++) printf("%d ", array[i]); fclose(file); free(array); printf("\n"); system("pause"); return 0; }
Регистрация: 09.09.2011
Сообщений: 51
нет немного не то
алгоритм
запустили прогу
она спросила что будем делать записывать файл (1) или искать файл (2)вывести все (3)
допустим нажали 1
ввели имя фамилию отчество
нажали энтр
програ спрашивает что будем делать записывать файл (1) или искать файл (2)вывести все (3)
нажали 2 и ввели ФИО кого нужно найти
что будем делать записывать файл (1) или искать файл (2) вывести все (3)
нажали 3
и на экран выводится массивы границы которых определяются пробелами
Как разбить строку по пробелам?
Как разбить строку на символ — ‘\n’ вместо пробелов? Нашел решение только с символьной строкой:
char text[256] = < "Welcome to my home!" >; for (int i = 0; i < string(text).size() - 1; i++) < if (text[i] == ' ') < text[i] = '\n'; >> cout
Неужели нету решения с строкой(string) ? Жду ваших вариантов.
Отслеживать
задан 28 июн 2019 в 14:25
97 1 1 серебряный знак 10 10 бронзовых знаков
А вы просто попробуйте тот же код, но с std::string text . Вдруг он тоже работает?
28 июн 2019 в 19:11
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
std::string s("Welcome to my home!"); s.replace(s.begin(), s.end(), ' ', '\n');
Отслеживать
ответ дан 28 июн 2019 в 17:07
AR Hovsepyan AR Hovsepyan
15.9k 3 3 золотых знака 14 14 серебряных знаков 30 30 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.30.8420
Разбиение строки по пробелу
Здравствуйте, такая задача. Ввести фамилию, имя и отчество одной строкой. Определить длину каждого слова. Вывести имя в обратном порядке.
Прочитал кучу тем о strtok() и других методах. Хочу понять как для моей задачи воспользоваться strtok(). Знаю, что strtok изменяет строку. Спустя часа размышлений и чтений тем пришел к выводу, что я неправильно ее использую.
1 2 3 4 5 6 7 8 9 10 11
char st[256]; cout " ="; cin >> st; char * st1 = strtok(st, " "); while (st1 != NULL) { cout st1 endl; st1 = strtok(NULL, " "); } system("PAUSE");
Для начала я бы хотел понять как мне вытянуть все 3 лексемы(имя, фамилия, отчество), а дальше уже не составит труда посчитать размер каждого и тд. Может кто помочь, пожалуйста.(желательно объяснить)
Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Удалить повторяющиеся пробелы между отдельными словами строки (оставляя по одному пробелу)
Введите предложение, слова в котором разделены пробелами и в конце которого стоит точка. Удалите.
Отформатировать текст: каждое предложение с новой строки, между словами - по одному пробелу
Задача: Дан текстовый файл. Переписать его текст в новый файл таким образом, чтобы каждое.
Вывести строку, содержащую символы строки S, между которыми вставлено по одному пробелу
Помогите пожалуйста решить эту задачу на С++. Дана непустая строка S. Вывести строку, содержащую.
Вывести строку, содержащую символы заданной строки, между которыми вставлено по одному пробелу
Что то вот на решал, немного вроде не так посмотрите оцените пожалуйста; /* Дана непустая строка S.
Неэпический
17871 / 10636 / 2054
Регистрация: 27.09.2012
Сообщений: 26,738
Записей в блоге: 1
Перегруженный operator>> будет читать до разделителя. Так что
std::cin>>f>>n>>o ;
7796 / 6562 / 2985
Регистрация: 14.04.2014
Сообщений: 28,700
1 2 3
char * fam = strtok(st, " "); char * im = strtok(NULL, " "); char * otch = strtok(NULL, " ");
Вежливость-главное оружие
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
Информация о strtok:
Кликните здесь для просмотра всего текста
Функция strtok
#include
char *strtok(char *str1, const char *str2);
Функция strtok() возвращает указатель на следующую лексему в строке, адресуемой параметром str1. Символы, образующие строку, адресуемую параметром str2, представляют собой разделители, которые определяют лексему. При отсутствии лексемы, подлежащей возврату, возвращается нулевой указатель.
В версии С99 к параметрам str1 и str2 применен квалификатор restrict.
Чтобы разделить некоторую строку на лексемы, при первом вызове функции strtok() параметр str1 должен указывать на начало этой строки. При последующих вызовах функции в качестве параметра str1 нужно использовать нулевой указатель. Этим способом вся строка разбивается на лексемы.
При каждом обращении к функции strtok() можно использовать различные наборы разделителей.
Пример
Эта программа разбивает строку "Травка зеленеет, солнышко блестит" на лексемы, разделителями которых служат пробелы и запятые. В результате получится
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#include #include int main(void) char *p; p = strtok("Травка зеленеет, солнышко блестит", " "); printf(p); do { p = strtok('\0', ", "); if(p) printf(" while(p); return 0; }