Форум: Форум C++Разное
Новые темы: 00
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Найти в тексте все слова содержащие русские, латинские буквы, цифры, мат.символы

Сообщения:  [1-4] 

 
 автор: cheops   (22.12.2007 в 05:01)   письмо автору
 
   для: lana   (21.12.2007 в 13:06)
 

Какие ошибки выводятся и как создаёте проект?

  Ответить  
 
 автор: lana   (21.12.2007 в 13:06)   письмо автору
 
   для: cheops   (20.12.2007 в 17:30)
 

А она на Visual си++ будет работать!? у меня почему-то выкакивают ошибки?!

  Ответить  
 
 автор: cheops   (20.12.2007 в 17:30)   письмо автору
 
   для: lana   (20.12.2007 в 10:01)
 

Можно начать отталкиваться от следующей программы
#include <iostream>
#include <ctype.h>
#include <string>
using namespace std;

int main()
{
  char input[80];

  printf("Введите строку ");
  fgets(input, 80, stdin);

  string str(input);
  string temp;

  int begin = 0;
  int end = 0;
  for(int i = 0; i < 80; i++)
  {
    if(str[i] != ' ')
    {
      end++;
    }
    else
    {
      int is_en = 0;
      int is_ru = 0;
      int is_num = 0;
      int is_math = 0;
      // Извлекаем слово
      temp = str.substr(begin, end - begin);
      for(int j = 0; j < temp.length(); j++)
      {
        int ch = (int)str[j];
        // Число
        if(isdigit(ch)) is_num = 1;
        // Английский символ
        if(isalpha(ch)) is_en = 1;
      }
      if(is_num && is_en)
      {
        // Слово содержит числа и английские символы
        // выводим его
        cout << temp << "\n";
      }
      // Переходим к следующему слову
      begin = end + 1;
      end++;
    }
  }
  // Обарабатываем конечное слово
  if(end > begin)
  {
    temp = str.substr(begin, end);
    int is_en = 0;
    int is_ru = 0;
    int is_num = 0;
    int is_math = 0;
    for(int j = 0; j < temp.length(); j++)
    {
      int ch = (int)str[j];
      // Число
      if(isdigit(ch)) is_num = 1;
      // Английский символ
      if(isalpha(ch)) is_en = 1;
    }
    if(is_num && is_en)
    {
      // Слово содержит числа и английские символы
      // выводим его
      cout << temp << "\n";
    }
  }

  return 0;
}

Здесь проверяются только числа и английские символы, для русских символов следует указать, какая кодировка будет использоваться (DOS, cp1251, KOI8-R, ISO), а для мат.символов и знаков пунктуации - уточнить какие из них будут входить (все кроме пробельных символов?).

  Ответить  
 
 автор: lana   (20.12.2007 в 10:01)   письмо автору
 
 

Найти в тексте все слова (не содержащие пробелов последовательности символов), содержащие символы из более чем одного из четырех алфавитов: русских букв, латинских букв, цифр, символов (математических символов и знаков пунктуации).

  Ответить  

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования