Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
applebee
0 / 0 / 0
Регистрация: 03.12.2014
Сообщений: 20
#1

Работа со строками. Написать grep

11.01.2015, 02:44. Просмотров 393. Ответов 3
Метки нет (Все метки)

Хочу написать программу, которая облегчила бы работу, а именно, есть *.txt файл, в котором информация, и из нее нужно достать только нужное и положить в другой файл.
Так вот, для начала хочу в консольке все сделать
Ну и все остановилось на просто выводе некой информации, которая находится в ковычках (Char(34)) это символ ".
Не могу адекватные циклы написать, думаю смысл понятен и прост
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include<iostream>
#include<string.h>
#define x char(34)
using namespace std;
/*void poisk()
{
 
}*/
void main()
{
    setlocale(LC_ALL, "RUSSIAN");
    char str[999];
    char s[1]={x};
    int len,i=0,n1,n2;
    n1 = n2 =0;
    cout << "Введите строку: ";
    cin >> str;
    len = strlen(str);
    cout << len << endl;
    while (n1 != n2)
    {
        char s3 = str[i];
        if (s3 == x)
        {
            cout << "Результат: " << str[i] << endl;
            cout << "Номер элемента: " << i << endl;
            n1 = i;
            if (n1 == i)
            {
                while (n2 != i)
                {
                    char s4 = str[i++];
                    if (s4 == 3)
                        n2 = i;
                }
            }
        }
        i++;
 
    }
    cout << "n1:" << n1 << "\nn2:" << n2<<endl;
    //n1++;
    //while (n1>=n2)
    for (n1; n2; n1++)
    {
        cout << "Между ковычками: " << str[n1];
        //n1++;
        //копирование между ковычками
    }
    system("pause");
}

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2015, 02:44
Ответы с готовыми решениями:

Написать программу: работа с си строками, функции strlen, strcpy
С помощью данного алгоритма нужно вставить слово в конец и начало строки. С...

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

Работа со строками.
Лишние пробелы. Дана строка, состоящая из слов, разделенных пробелами. Напишите...

работа со строками
Помогите пожайлуста!!! Задание такое: Удалить из текста все слова с четными...

Работа со строками
Даны два слова. Для каждой буквы первого слова определить, входит ли она во...

3
Renji
2156 / 1515 / 461
Регистрация: 05.06.2014
Сообщений: 4,394
11.01.2015, 10:09 #2
Не могу адекватные циклы написать, думаю смысл понятен и прост
Лично от меня смысл вашей писанины ускользает. Вот зачем, например, нужен массив на один символ (char s[1])?
C++
1
2
3
4
5
6
char str[1024];
cin>>str;
char*begin;
for(begin=str;*begin&&*begin!='"';++begin);
for(++begin;*begin&&*begin!='"';++begin)
    cout<<*begin;
0
zss
Модератор
Эксперт С++
6985 / 6547 / 4151
Регистрация: 18.12.2011
Сообщений: 17,275
Завершенные тесты: 1
11.01.2015, 11:13 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
 
int main()
{   
  string s="aaaaaaaaaa\"qwerty\"bbbbbbbb";
  string::iterator f1=find(s.begin(),s.end(),'\"'); // ищем первую кавычку
  string::iterator f2=find(f1+1,s.end(),'\"'); // ищем вторую кавычку
  ostream_iterator<char> out(cout, ""); // итератор вывода текста на экран 
  copy(f1+1,f2, out); cout << endl; // выводим участок от f1+1 до f2
  system("PAUSE");
  return 0;
}
Кстати, обобщенные алгоритмы работают и с обычными массивами
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
using namespace std;
 
int main()
{   
  char s[]="aaaaaaaaaa\"qwerty\"bbbbbbbb";
  int L=strlen(s);
  char* f1=find(s,s+L,'\"'); // ищем первую кавычку
  char* f2=find(f1+1,s+L,'\"'); // ищем вторую кавычку
  ostream_iterator<char> out(cout, ""); // итератор вывода текста на экран 
  copy(f1+1,f2, out); cout << endl; // выводим участок от f1+1 до f2
  system("PAUSE");
  return 0;
}
0
gazlan
3139 / 1915 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
11.01.2015, 11:26 #4
Цитата Сообщение от applebee Посмотреть сообщение
достать только нужное и положить в другой файл
grep, называется.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2015, 11:26

Работа со строками
Вставить после вхождения строки str подстроку str1. Попытался сам сделать,...

Работа со строками
У меня есть есть структурные переменные и указатели на них, естественно....

Работа со строками
Всем доброго времени суток! Нужна ваша помощь вот с такой задачкой. Я ввожу с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru