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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2013, 20:08   #1
fanat2011
 
Регистрация: 18.03.2013
Сообщений: 5
По умолчанию Найти и напечатать слово, в котором содержится больше всего заданного символа

Всем привет!

Дан текст, который содержит буквы и пропуски. Найти и напечатать слово, в котором содержится больше всего заданного символа. Словом считать последовательность букв, разделенных пропусками.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void main()
{
    char str[100 + 1], *buf = str, chr;
    int count = -1, temp = 0;
    
    printf("Vvedit re4annja: ");
    gets(str);
 
    printf("Vvedit sumvol dl9 poshuka v slovi: ");
    scanf("%c", &chr);
 
    do
    {
        if (*buf != ' ' && *buf == chr)
            temp++;
        if (*buf == ' ' || *buf == '\0')
        {
            if (temp > count)
                count = temp;
            temp = 0;
        }
    }
    while(*buf++);
	
	if (count > 0)
		printf("\nKilkist maks povtoren sumvola %c y slovi: %d\n", chr, count);
	else
		printf("\nSumvol %c ne naideno v re4enni!\n", chr);
    system("pause");
}
Сделал только вывод макс. повторяемого символа в слове, а надо вывести еще само слово
Спасибо, жду ответа!

Последний раз редактировалось fanat2011; 10.04.2013 в 00:20.
fanat2011 вне форума Ответить с цитированием
Старый 10.04.2013, 00:21   #2
fanat2011
 
Регистрация: 18.03.2013
Сообщений: 5
По умолчанию

Так что, кто-нибудь поможет?
fanat2011 вне форума Ответить с цитированием
Старый 11.04.2013, 16:10   #3
VladimirVB
Форумчанин
 
Аватар для VladimirVB
 
Регистрация: 12.10.2008
Сообщений: 131
По умолчанию

Код:
#include "stdafx.h"
#include <iostream>
using namespace std;

void find_col_char(char*, char);

char string1[] = "A string of tokenss and some more tokens";
char seps[]   = " ";
char *token;	// указатель на слово
char c = 's';	// символ для поиска
char _word[80];	// для хранения найденного слова
int n = 0;	// кол-во найденного символа в слове

void main()
{
	//получаем 1-е слово
	token = strtok(string1, seps);
	
	while( token != NULL )
	{
		find_col_char(token, c);

		// Получить следующее слово
		token = strtok(NULL, seps );
	}
	
	printf("%s\n", _word);
}

void find_col_char(char *w, char ch)
{
	int count  = 0;
	while(*w)
	{
		if(*w == ch)
			count++;
		w++;
	}
	if(count > n)
	{
		n = count;
		strcpy(_word, token);
	}
}
VladimirVB вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив - найти сумму отрицательных меньше заданного числа и количество положительных больше заданного числа ALEXXELA Паскаль, Turbo Pascal, PascalABC.NET 2 02.12.2012 20:13
Файлы.Найти раздел, в котором больше всего книг Camelot_2012 Паскаль, Turbo Pascal, PascalABC.NET 3 14.06.2012 13:25
Определить cлово, в котором больше всего гласных букв. [Алёнка] Паскаль, Turbo Pascal, PascalABC.NET 1 05.12.2011 13:02
как найти длину маршрута не больше заданного числа? lisa007x Помощь студентам 0 02.10.2010 14:22
Определить первое слово, начинающееся с заданного символа. Нездешний Помощь студентам 11 18.10.2009 16:51