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

Строки в стиле C. Прошу помочь со знаками препинания... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалить из заданной строки все группы символов, расположенные между скобками, включая сами скобки http://www.cyberforum.ru/cpp-beginners/thread81273.html
)))
C++ Работа с open GL как работать с OpenGL в VS6 http://www.cyberforum.ru/cpp-beginners/thread81271.html
Найти сумму 5 элементов, которые введёт пользователь C++
как найти сумму 5 элементов который введёт пользователь?и правильно ли я создал двумерный массив? void main() { int a; int i,j; char b; int s=0; for (i=0;i<4;i++) { for (j=0;j<5;j++){ a = rand()%100;
Пошаговый ввод данных и результатов C++
Даны натуральные числа n, действительные числа a1...an. Вычислить: a1,a1+a2,...,a1+a2+...+an
C++ Побитовый сдвиг http://www.cyberforum.ru/cpp-beginners/thread81253.html
есть допустим переменная unsigned char data = 0b10111011; Как можно сделать за 4 шага по битовый сдвиг на двух половинах как видите она делится на 1011 1011 надо что бы сдвигалась левая и правая часть . 1 . 0101 0101
C++ Замена каждого элемента массива на среднее арифметическое его и его соседей помогите пожалуйста Размерность массива - 100 диапазон от -50 до 50 заменить каждый элемент массива на среднее арифметическое его и его соседей! подробнее

Показать сообщение отдельно
vitaliy1392
Сообщений: n/a

Строки в стиле C. Прошу помочь со знаками препинания... - C++

29.12.2009, 09:44. Просмотров 378. Ответов 0
Метки (Все метки)

Всем привет!
Задание такое: написать программу, определяющую сколько в тексте слов, у которых первый и последний символы совпадают.При этом возможен перенос слов с одной строки на другую через дефис.
Вот то, что получилось у меня.
Код
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
int i,s;
char text[256];
char begin,end;
cout<<"Ââåäèòå òåêñò\n";
gets(text);
s=0;
for(i=0;i<strlen(text);i++)
	  {
	  if((text[i-1]==' '&&text[i]!=' ')||ispunct(text[i-1])||(i==0&&text[i]!=' '))

		 begin=text[i];

	  if((text[i+1]==' '||text[i+1]=='\0'||ispunct(text[i+1]))&&text[i]!=' ')
	{
	end=text[i];
		if(begin==end)
		s++;
}
}
cout<<s;
return 0;
}
Проблема в том, что дефис входит в ispunct() и когда прога читает текст воспринимает его как разделитель. Есть ли другие способы сделать со знаками препинания, но и учесть дефис при этом?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru