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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2010, 02:05   #1
Lifastyle
 
Регистрация: 13.03.2010
Сообщений: 3
Вопрос Строки

В строке символов определить слова-палиндромы, найти наибольшую длину этих слов. Если таких слов нет, то вывести об этом сообщение.

Мой код проги:

Код:
#include<iostream> 
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

int f1()
{
    char buffer[1024]={0};
    char temp[128]={0};
    printf("enter you string\n");
    gets(buffer);
    unsigned int length=strlen(buffer);
    unsigned int i=0;
    unsigned int k;
    unsigned int WordLength;
    unsigned int Word;
	    while(i<length)
    {
        Word=1;
        memset(temp,0,sizeof(temp));
        k=0;
        while((buffer[i]!=0x20)&(i<length))
        {
            temp[k]=buffer[i];
            i++;
            k++;
        }
        WordLength=strlen(temp);
        if(WordLength<2)
        {
            i += WordLength;
            continue;
        }
        for(unsigned int n=0;n<(WordLength/2);n++)
        {
            if(temp[n] == temp[WordLength-1-n])
            {
                Word *= 1;
            }
            else
            {
                Word *= 0;
                break;
            }
        }
        if(Word) {printf("%s ",&temp[0]);}
        i++;
    }
    system("PAUSE");
    return 0;
} 
int f2()
{
	int curlen = 0, maxlen = 0,index = 0, i;
	  char temp[128]={0};
			for(i=0;;i++)
   {
     if(temp[i]==' '|| temp[i]=='\0'){
         if(curlen>maxlen){
           maxlen = curlen;
             index = i;
         }
         //если конец строки -> выйти из цикла
         if(temp[i]=='\0')break;
         curlen = 0;
      }
      else curlen++;
   }
cout << "" << maxlen;
   getch ();
   return 0;

}
int main(){
	f1();
	f2();
	
		}
Компилируется, но не корректно работает (например, не находит наибольшую длину слова).
Просьба, подправить коды, убрать все недочеты.
Буду благодарна любой помощи!
Lifastyle вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление элементов строки s2 из строки s1 Ueshua Общие вопросы C/C++ 4 20.12.2009 13:06
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45