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

Обработка текстовой информации С++ - C++

Восстановить пароль Регистрация
 
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
07.12.2010, 18:53     Обработка текстовой информации С++ #1
Вот значит добрые люди моя программа. Программа в строке символов должна находить первую и последнюю запятую. Всё отлично работает.

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
const int n=100;
 
int _tmain(int argc, _TCHAR* argv[])
{
   int i, c=0, v=0;
   char str[n];
   setlocale(LC_ALL,"rus");
   cout<<"Введите строку:";
   for(i=0;i<n;i++)
   {
      if(c==0)
      if(str[i]==',')
      {
         cout<<"Первая запятая в строке находится под номером"<<i+1<<"."<<endl;
         c++;
      }
      if(str[i]==',')
      if(v<i) v=i;
   }
   if(v==0)
   {
      cout<<"В строке, которую вы ввели запятых нет!"<<endl<<endl;
   }
   else
   {
      cout<<"Последняя запятая в строке находится под номером "<<v+1<<"."<<endl<<endl;
   }
   system("pause");
   getch();
   return 0;
}
Внимание вопрос! Нужно эту прогу переделать с библиотекой <string.h> и максимум её использовать. Читал справку, английский не знаю, ничего не нашел. Помогите плиз.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.12.2010, 19:05     Обработка текстовой информации С++ #2
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string>
 
int main()
{
    std::string str("ololo,ahah,wtf,proc,kaka");
    std::cout << "Pervaya <,> pod indexom: " << str.find_first_of(',', 0) << std::endl
              << "Vtoraya <,> pod indexom: " << str.find_last_of(',') << std::endl;
    return 0;
}
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
07.12.2010, 19:23  [ТС]     Обработка текстовой информации С++ #3
Спасибо, но мне нужно вводить строку с клавиатуры...
Как можно к этой проге прилепить ввод, если там строка в самой проге задана, так не пойдёт...
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.12.2010, 19:28     Обработка текстовой информации С++ #4
asics, вы не то сделали. Для данной задачи нужно использовать strchr() и strrchr() из хедера string.h
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.12.2010, 19:31     Обработка текстовой информации С++ #5
Perfaratar, Ну елементарно жэ
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
 
int main()
{
    std::string str;
    std::cout << "Enter str: ";
    std::getline(std::cin, str);
    std::cout << "Pervaya <,> pod indexom: " << str.find_first_of(',', 0) << std::endl
              << "Vtoraya <,> pod indexom: " << str.find_last_of(',') << std::endl;
    return 0;
}
Добавлено через 1 минуту
Kastaneda, Согласен.Значит показал еще одни способ решение этой задачи .
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.12.2010, 19:42     Обработка текстовой информации С++ #6
Вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
#include <string.h>
using namespace std;
const int N=81;
int main(){
    char string[N];
    cout<<"Enter string : ";
    cin.getline(string,N-1);
    int a=(int)(strchr(string,',')-string+1);
    int b=(int)(strrchr(string,',')-string+1);
    cout<<"First comma in "<<a<<" position, latest comma in "<<b<<" position"<<endl;
    return 0;
}
опытным путем выяснил, что <string> и <string.h> не одно и то же. странно...
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
07.12.2010, 19:47  [ТС]     Обработка текстовой информации С++ #7
Спасибо всем огромное можно закрывать тему!!!
Kastaneda
07.12.2010, 20:01
  #8

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
<string> и <string.h> не одно и то же.
Что-то я гоню под вечер...

Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
07.12.2010, 20:32  [ТС]     Обработка текстовой информации С++ #9
Я это уже понял когда ваши проги компилировал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2010, 21:15     Обработка текстовой информации С++
Еще ссылки по теме:

C++ Обработка символьной информации
Выборка и обработка информации C++
C++ Из Паскаля в Си++. Шифрование текстовой информации

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

Или воспользуйтесь поиском по форуму:
Kastaneda
07.12.2010, 21:15     Обработка текстовой информации С++
  #10

Не по теме:

Цитата Сообщение от Perfaratar Посмотреть сообщение
Я это уже понял
Да не, на самом деле это действительно не одно и то же, просто в C++'ном исходнике пишется <cstring> вместо <string.h>. У меня это из головы вылетело, и я что-то задумался, как так нужно подключать <string.h>, странно )))

Yandex
Объявления
07.12.2010, 21:15     Обработка текстовой информации С++
Ответ Создать тему
Опции темы

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