Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Argos
1 / 1 / 1
Регистрация: 14.01.2011
Сообщений: 82
1

Конец строки

29.10.2011, 08:56. Просмотров 626. Ответов 1
Метки нет (Все метки)

Привет всем. Глупый вопрос но все же.
В файле находится строка (или строки) A->Sasas|D|F и S->A|gh|Y
В V должно быть выведено A, D, F, S, A, Y. то есть все символы которые стоят между -> и | (и должны быть единственными)
Но почему то выводит только A, D, S, A. то есть теряет последний символ (если он единственный)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        while(!feof(f))
        {
                char c[100]={NULL};
                fscanf(f,"%s",&c);
                int d=strlen(c);
                Label1->Caption=d;
                int Count=0;
                for(int i=0;i<d;i++)
                {
                        if (c[i]=='|'||c[i]=='-'||c[i]=='>'||c[i]=='\n')
                        {
                                if(Count==1) {V->Items->Add(c[i-1]); }
                                Count=0;
                        }
                        else  Count++;
                }
 
        }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2011, 08:56
Ответы с готовыми решениями:

RichEdit и конец строки
Необходимо менять размеры шрифта RichEdit по кнопке, но из-за этого будет...

конец строки в компоненте Memo
Подскажите пожалуйста как отловить конец строки в компоненте Memo или хотябы...

Переместить строки в конец матрицы
Добрый вечер. Задание:Строки, содержащие хотя бы один нулевой элемент,...

Как установить курсор в конец строки в Memo?
Как установить курсор в конец строки в Memo?

RichEdit добавление текста в начало и конец строки
Здравствуйте. Требуется ввести в RichEdit произвольный текст, после нажатия на...

1
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
29.10.2011, 09:27 2
Логическая ошибка в том, что Вы добавляете букву в список при условии, что встретился какой-то из служебных символов. Если в конце такого символа нет, то и не добавится ничего. Можно вставить доп.проверку в конце
C++
1
2
3
4
5
6
7
8
9
10
               for(int i=0;i<d;i++)
                {
                        if (c[i]=='|'||c[i]=='-'||c[i]=='>'||c[i]=='\n')
                        {
                                if(Count==1) {V->Items->Add(c[i-1]); }
                                Count=0;
                        }
                        else  Count++;
                }
                if(Count==1) {V->Items->Add(c[d-2]); } // не уверен насчёт d-2 =)
А не проще добавлять букву в список сразу как она найдена? Как-то так:
C++
1
2
3
                        if (c[i]!='|'||c[i]!='-'||c[i]!='>'||c[i]!='\n')
                        {
                                V->Items->Add(c[i]); }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2011, 09:27

Как обрезать конец строки заданного размера?
Добрый день, К примеру - На входе (string): firmaSButton На выходе:...

C Builder 10. Функция t_str() меняет конец исходной строки.
Всем доброго времени суток! Решил перевести свой старый проект, написанный в...

Kак добавить текст в конец строки поля memo
Доброго времени суток. Помогите пожалуйста. Нужно сделать программу которая...


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

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

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