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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2013, 14:17   #1
Olgaandsasha
Пользователь
 
Регистрация: 24.10.2011
Сообщений: 54
По умолчанию удалить из предложения слова, в которых буква А встречается более двух раз

Написать и отладить программу для ввода предложения и отредактировать его, удаляя из него слова, в которых буква А встречается более двух раз.
помогите пожалйуста. это начало, для ввода предложения.
Код:
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
void main() {
     clrscr();
     char s[255], *temp=NULL, *word=NULL, *result=NULL; 
     cout << "Input string: ";
     gets(s); //ввод строки
     word = (char *) calloc(strlen(s), sizeof(char)); 
     result = (char *) calloc(strlen(s), sizeof(char)); 
     int i, j, wordlen=0;
     int parity = (-1);
     for (i = 0; i < strlen(s); i++) {
	 if ((!ispunct(s[i]) && !isspace(s[i])) && parity==1) {
	     word[wordlen] = s[i];
	     wordlen++;
	}

	}}

Последний раз редактировалось Stilet; 17.12.2013 в 14:30.
Olgaandsasha вне форума Ответить с цитированием
Старый 19.12.2013, 10:41   #2
Olgaandsasha
Пользователь
 
Регистрация: 24.10.2011
Сообщений: 54
По умолчанию

вот нашла что-то, а как это изменить, чтоб ввод с клавиатуры был?
#include <stdio.h>
#include <strstrea.h>
#include <string.h>

int StrCharCount(char *str, int c)
{
int nCount = 0;
while (*str != '\0')
{
if (*str == c)
++nCount;
++str;
}
return nCount;
}

int main(int argc, char* argv[])
{
char InpBuff[] = "Мама мыла раму и упала в яму";
char OutBuff[sizeof(InpBuff)] = "";
char Word[16];

istrstream iss(InpBuff);
while (!iss.eof())
{
iss » Word;
if (StrCharCount(Word, 'а') < 2)
{
strcat(strcat(OutBuff, Word), " ");
}
}

printf ("Входная строка: %s\n", InpBuff);

printf ("Выходная строка: %s\n", OutBuff);

return 0;
}
Olgaandsasha вне форума Ответить с цитированием
Старый 19.12.2013, 13:57   #3
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Есть несколько способов решить вашу задачу, вот один из них:

Код:
char *predlogenie;
std::cout << "Input string: ";
std::cin >> predlogenie;
int len = strlen(predlogenie);
char buffer[len];
int bufferPosition = 0;
int lenWord = 0;
int countA = 0;
for (int i = 0; i < len; i++) {
   lenWord++;
   if (predlogenie[i] == 'a' || predlogenie[i] =='A') 
      countA++;
   if (predlogenie[i] == ' ') {
        if (countA < 2) {
            memcpy(buffer + bufferPosition, predlogenie - lenWord + 1, lenWord);
            bufferPosition = lenWord;
        }
        lenWord = 0;
   }
}
Это программка должна работать как надо не проверял, писал сразу здесь, а насчет того что вы привели:
Цитата:
Код:
#include <stdio.h>
#include <strstrea.h>
#include <string.h>

int StrCharCount(char *str, int c)
{
int nCount = 0;
while (*str != '\0')
{
if (*str == c)
++nCount;
++str;
}
return nCount;
}

int main(int argc, char* argv[])
{
char InpBuff[] = "Мама мыла раму и упала в яму";
char OutBuff[sizeof(InpBuff)] = "";
char Word[16];

istrstream iss(InpBuff);
while (!iss.eof())
{
iss » Word;
if (StrCharCount(Word, 'а') < 2)
{
strcat(strcat(OutBuff, Word), " ");
}
}

printf ("Входная строка: %s\n", InpBuff);

printf ("Выходная строка: %s\n", OutBuff);

return 0;
}
Здесь используются специальные функции для работы с текстом если это не возбраняется, то это вроде должно работать.
Может это и чушь, но это моя чушь и я ее никому не отдам.
Shad0wF1rst вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Oracle - вывести работников, в имени или фамилии которых какая-либо буква встречается 2 и более раз Кристина * SQL, базы данных 10 08.12.2012 20:32
Определить количество слов, в которых буква 'П' встречается хотя бы один раз. edgeks Помощь студентам 0 18.11.2012 15:34
Дано предложение. Выведите на экран те слова в которых буква "о" встречается дважды. Кристинааа Паскаль, Turbo Pascal, PascalABC.NET 5 08.06.2011 15:25
Текстовый файл, из предложения выбросить слова в которых встречается определённая буква. (Паскаль) serhan Помощь студентам 14 25.04.2011 15:29
найти все слова, в которых заданный символ встречается не менее чем заданное число раз. Delphi. Виктория7777 Помощь студентам 6 21.12.2010 18:46