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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2012, 19:57   #1
dimi3ryi
 
Регистрация: 14.11.2012
Сообщений: 3
Вопрос Захват первого слова(строка) С++

Немного ошибся в названии,извиняюсь,на языке Си,а не С++
В общем,сделал прогу,которая вычисляет в строке палиндромы и удаляет их.2-е задание проги :найти в строке самое длинное слово,напечатать его и его длину.
Проблема : Если самое длинное слово в середине или конце строки всё нормально,но вот если к первое или второе,то первые 2 слова печатаються вместе и длина их складываеться(+1 за счёт пробела).Как можна исправить?
Пример:
Строка-"Казак ест два яблока." Сам длин слово-"казак ест",9 букв
А должно быть "яблока",6 букв
p.s.Пытаюсь подсчитать количество слов с одинаковым кол-вом гласных и согласных букв,но выдаёт 0,мож кто найдёт ошибку
Код:
printf("Word of max lenght :");
	for(int i=0; i<lenght; i++)
    {
        if(word[i]!=' ' && word[i]!='\n' && i<lenght-1 && word[i]!=',' && word[i]!='!' && word[i]!='.') 
         {
            len++;
         }
        else
         {
            if(i==lenght-1){len++;i++;}
            if(len==maxlen)
             { 
                
                 for(int j=i-maxlen; j<=i; j++)
                 {
                    
                    printf("%c", word[j]); 
                 }
             }
                
            len=0;
         }
    }
	printf("\nLenght of this word %d symbols.\n\n", maxlen);
	//Нахождение самого длинного слова,вывод на экран самого слова и его длины
	for(int i=0;i<lenght;i++)
	{
		if(word[i]!=' ' && word[i]!='\n' && i<lenght-1 && word[i]!=',' && word[i]!='!' && word[i]!='.') //Прописываем,что будет использов в качестве разделителя
		{
			for(k=0;k<10;k++)
				if(word[i]==glas[k])
				{
					g++;
					i++;
					k=0;
				}
				else
					s++;
					i++;
					k=0;
		}
		else
		{
			if(g==s)
			{
				sum++;
			}
			s=0,g=0;
		}
	}
	printf("%d \n",sum);
	//Выводим на экран кол-во слов с один кол-вом гласных и согласных

Последний раз редактировалось dimi3ryi; 04.12.2012 в 20:01.
dimi3ryi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Напечатать слова, в которые не входит ни одна из букв первого слова abakuz Помощь студентам 0 30.05.2011 23:07
Символьная строка содержит слова, разделенные пробелами. Найти все слова-палиндромы (Паскаль) sashunechka Помощь студентам 4 18.05.2011 21:45
Подсчитать количество вхождений в слова первого слова. 07412 Общие вопросы C/C++ 4 27.05.2010 12:05
Перестановка в строке первого и последнего слова.. mihail0608 Общие вопросы C/C++ 16 08.12.2009 16:25
СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова nick23 Помощь студентам 7 01.11.2009 14:47