Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
ru_LAN
15 / 15 / 1
Регистрация: 13.11.2011
Сообщений: 299
1

<string> работа со строкой

27.11.2015, 13:53. Просмотров 788. Ответов 1
Метки нет (Все метки)

Добрый день, уважаемы формучане. Не очень силен в работе со строками. Надеюсь на Вашу помощь.
Допустим у меня есть некая строка: string s="as\nxcf\ndgkon\n1dwe\nd34d\nwe:asfsdf";
Меня интересует выделенный кусок текста.
Допустим kon это некая порода. все что идет после kon до ":" это имена породы kon имена разделены \n, то бишь имена:
1)1dwe
2)d34d
3)we
C++ (Qt)
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
 struct Variable
    {
    char Name[20];
    } list[100];
    FILE * ptrFile2 = fopen("out.txt" , "w");
    char *ty;
    string s;
     ty=ptrFile2->_base;
   s=(const char*) ty;
    fclose(ptrFile2);
    int j=0, k=0;
        l=s.length();
        for(int i=0; i<=l; i++)
        if( s[i]=='k')
        {
            i++;
            if(s[i]=='o')
            {
                i++;
                if(s[i]=='n')
                {
                    i++;
                    while(s[i]!=':')
                    {
                        k=0;
                        while(s[i] !='\n')
                            {
                            list[j].Name[k++]=s[++i];
                            }
                        j++;
                        i++;
 
                    }
                }
            }
        }
Сначала вопрос по поводу 3-ёх if можно ли как-то "по нормальному" осуществлять поиск по строке?
таких "пород" kon может быть несколько и все они должны начинаться с kon и заканчиваться :
После того как я прошелся по строке и записал в список все имена породы kon, далее будет производится операция /. Это операция доступно только для имен типа kon, то есть при последующем считывании строки и нахождения символа / мне нужно проверить что за имена(операнды) находятся слева и справа от /, сверить со списком имен и если это не так, выдать сообщение об ошибке.
Как это осуществить? какими ф-иями пользоваться?
Спасибо.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2015, 13:53
Ответы с готовыми решениями:

Std::string размера 20 со строкой длины 10?
Возможно ли, что std::string будет хранить в себе строку длиной в 10 символов, но при этом иметь...

Поиск количества совпадений подстроки со строкой string
Я где-то вроде натыкался на такую функцию в библиотеке string, но не помню названия, может кто...

Class String, изменить строку другой строкой
Необходимо сделать класс, объявить в нем функции виртуальными, сделать еще класс, дочерний от...

Реализовать класс Строка (String) для хранения и выполнения операций над строкой
Реализовать класс Строка (String) для хранения и выполнения операций над строкой. Строка должна...

Работа со строкой
Задача: Запнулся над забиванием пробелами между словами. Что уже есть: #include &lt;iostream&gt; ...

1
nmcf
6541 / 5763 / 2623
Регистрация: 14.04.2014
Сообщений: 24,498
27.11.2015, 14:38 2
Лучший ответ Сообщение было отмечено ru_LAN как решение

Решение

C++
1
s.find("kon")
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2015, 14:38

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

Работа со строкой
Работа со строкой

работа со строкой
ПОМОГИТЕ пожалуйста Необходимо написать программу в C++ которая находила бы максимальное число в...

Работа со строкой
Помогите, что нибудь из этого сделать! 1.Напечатать первое слово, содержащее 2 подряд заданных...


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

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

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