Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2013, 18:53   #1
ELaX
Пользователь
 
Регистрация: 24.11.2013
Сообщений: 29
По умолчанию Проблема с апострофами

Надо программу которая выводит из строки слова состоящие из не более 4 букв.
мой код:
Код:
#include<iostream>
#include<string>

using namespace std;

int main()
{
  setlocale(LC_ALL, "Russian");

  string s = "", str = "", t1 = "", t2 = "", t="";
  int j = 0, i = 0;
 str = "The sea was really rough and the waves were huge. It was so exciting! Canoe was full of water but we weren't scary.";
 //str="I think it's apparent that I need to rethink my life a little bit. What's my problem? First of all, I'm a rat.";
  //getline(cin, str);
  for (i = 0; i < str.length(); i++)
  {
    s += str[i];
    if (s[s.length() -1] == ' ' )
    {
      if (s.length()<=5) t1 = t1 + s;
	   s = "";
    }
  }
	  cout << t1;
  return 0;
}
Как можно искать до апострофа ' если условие записать if (s[s.length() -1] == ''' ) или =="'" он пошлёт с ошибкой... .
Ввод данных в коде есть аж 2 строки) на первую ответ
The sea was and the were huge It was so was full of but we t
Помогите решить проблему с апострофами...
ELaX вне форума Ответить с цитированием
Старый 03.12.2013, 21:00   #2
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

вообщет надо искать не "пробелы", а "небуквы"
Smogg вне форума Ответить с цитированием
Старый 03.12.2013, 21:28   #3
ELaX
Пользователь
 
Регистрация: 24.11.2013
Сообщений: 29
По умолчанию

через функцию isalpha или по другому можно заменить == ' ' на == что?
ELaX вне форума Ответить с цитированием
Старый 03.12.2013, 22:06   #4
ELaX
Пользователь
 
Регистрация: 24.11.2013
Сообщений: 29
По умолчанию

поменял условие на if (isalpha(str[i]) == 0)
ELaX вне форума Ответить с цитированием
Старый 04.12.2013, 01:48   #5
_Freak_
Пользователь
 
Регистрация: 26.03.2013
Сообщений: 25
По умолчанию

А если так:

Код:
#include <stdio.h>
#include <string.h>
#include <ctype.h>


size_t is_word(const char* substr)
{
	while (*substr) {
		if (!(isalpha(*substr) || *substr == '\'')) {
			return 0;
		}
		++substr;
	}
	return 1;
}


size_t number_of_letters(const char* word)
{
	size_t count = strlen(word);

	if (strchr(word, '\'')) {
		--count;
	}

	return count;
}


int main(int argc, const char* argv)
{
	const char delims[] = { ".!?, \t" };
	const char* substr;

	const char text[] = {
		"The sea was really rough and the waves were huge. It was so exciting! " 
		"Canoe was full of water but we weren't scary." 
	};

	printf("Custom text: %s\n\n", text);

	substr = strtok(text, delims);

	while (substr) {
		if (is_word(substr)) {
			if (number_of_letters(substr) <= 4u) {
				printf("%s\n", substr);
			}
		}
		substr = strtok(0, delims);
	}

	printf("\n");

	system("pause");

	return 0;
}
_Freak_ вне форума Ответить с цитированием
Старый 04.12.2013, 02:19   #6
D][mon
Форумчанин
 
Регистрация: 05.01.2010
Сообщений: 150
По умолчанию

еще можно было запихнуть код этого символа в char
D][mon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неблокирующий сокет Си проблема с закрытием, проблема с закрытием сокетов в цикле mnx_vol C/C++ Сетевое программирование 0 06.11.2012 13:57
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37