Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
shout27
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 47
#1

Символьные строки. Работа с файлами. - C++

09.01.2012, 23:50. Просмотров 621. Ответов 4
Метки нет (Все метки)

Дан текст, каждый символ которого может быть малой буквой, цифрой или одним из знаков +,-,*.
Найти число таких групп букв, которые начинаются и заканчиваются одним и тем же символом.
(Текст взять из файла). Ума хватило, только что бы сделать чтение из файла
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2012, 23:50     Символьные строки. Работа с файлами.
Посмотрите здесь:

C++ Работа с текстовыми файлами.Удалить строки.
C++ Строки, работа с файлами и массивами строк
C++ Работа с файлами. Убрать пустые строки
Символьные строки C++
C++ символьные строки А и Б
C++ символьные строки
C++ Строки и работа с файлами
C++ Работа с файлами, как определить конец строки
Работа с файлами, запись строки в файл и чтение из файла C++
Работа с файлами С++ Строки заменить сроку другим числом! C++
C++ C++/ работа с текстовыми файлами/строки
C++ Символьные строки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,516
10.01.2012, 00:49     Символьные строки. Работа с файлами. #2
Ну ищите два пробела (перед словом и после) и сверяете равен ли символ идущий после первого пробела символу идущему перед последним пробелом.

Добавлено через 15 минут
Вот набросок, хотя код получился не очень то хорошим, явно есть что улучшить, может это вам удастся. Ну считывать данные вы вроде умеете так что привожу пример просто с string.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main ()
{
    string str="ababa galamaga ada";
    if(str.length()<=1)
     exit(1);
    size_t first;
    size_t last;
    first=str.find_first_not_of(" ");
    last=str.find(" ");
    while(last!=string::npos)
    {
         if(str[first]==str[last-1])
          cout<<str.substr(first,last)<<'\t';
       last++;
       first=str.find_first_not_of(" ",last);
       last=str.find(" ",last);
    }
 
     if(str[first]==str[str.length()-1])
      cout<<str.substr(first,last);
}
Добавлено через 1 минуту
поиск до цикла можно в принципе и упустить, но тогда нужно усложнить условие, в общем на ваш вкус )
shout27
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 47
10.01.2012, 00:57  [ТС]     Символьные строки. Работа с файлами. #3
Ну, спасибо)) Буду разбираться)
Просто С только первый год изучаю, да и вообще язык программирования, поэтому многое пока для меня не понятно...
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,516
10.01.2012, 02:55     Символьные строки. Работа с файлами. #4
тогда
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
int main ()
{
    string str="ababa galamaga ada";
    //если строка пустая или в ней 1 символ то нечего там искать
    if(str.length()<=1)
     exit(1);
     
    size_t first;//позиция начала слова
    size_t last;//позиция за концом слова
    first=str.find_first_not_of(" ");//найдём что-то кроме пробела (начало слова)
    last=str.find(" ");//найдём пробел (сл. символ за концом слова)
    
    while(last!=string::npos)//пока конец слова можно ещё найти
    {
         if(str[first]==str[last-1])
          cout<<str.substr(first,last)<<'\t';
       last++;
       first=str.find_first_not_of(" ",last);
       last=str.find(" ",last);
    }
    //после проработки цикла не проверяеться не явл. ли последнее слово искомым
    //когда 1 символ слова = последнему символу слова
    //проверим это
     if(str[first]==str[str.length()-1])
      cout<<str.substr(first,last);
}
shout27
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 47
10.01.2012, 19:14  [ТС]     Символьные строки. Работа с файлами. #5
О, спасибо! Так даже лучше
Yandex
Объявления
10.01.2012, 19:14     Символьные строки. Работа с файлами.
Ответ Создать тему
Опции темы

Текущее время: 11:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru