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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2008, 14:43   #1
4ery
 
Регистрация: 18.12.2008
Сообщений: 2
Вопрос Работа со строками (С/С++)

Помогите бедной студентке, сессия на носу, а мне сами понимаете до освоения Си, как до канадской границы...

Дана строка, содержащая слова, разделенные одним или несколькими
разделительными символами (пробелами, табуляторами),
в начале строки в конце строки также могут находится раздел. символы.
Сформировать новую строку, состоящую только из слов,
начинающихся и заканчивающихся на один и тот же символ и состоящих из нечётного кол-ва символов, раздел. одним пробелом.
В начале и конце, не должно быть раздел. символов.

Последний раз редактировалось rpy3uH; 19.12.2008 в 16:20.
4ery вне форума Ответить с цитированием
Старый 19.12.2008, 17:41   #2
Goblin
Форумчанин
 
Регистрация: 24.11.2007
Сообщений: 196
По умолчанию

Вроде работает. Но если что не так или непонятно стучи в 445435153.

Код:
/*
Дана строка, содержащая слова, разделенные одним или несколькими
разделительными символами (пробелами, табуляторами),
в начале строки в конце строки также могут находится раздел. символы.
Сформировать новую строку, состоящую только из слов,
начинающихся и заканчивающихся на один и тот же символ и состоящих из нечётного кол-ва символов, раздел. одним пробелом.
В начале и конце, не должно быть раздел. символов.
*/

#include <stdio.h>
#include <cstring>

int main()
{
    char *str = " 53675 98489"; // Входная строка.
    char *buff = new char[strlen(str)];
    char *p_buff = buff;
    int i = 0;
    str--;
    do
    {
        str++;
        if((str[0] == '\t') || (str[0] == ' ') || 
            (str[0] == '\0'))
        {
            
            if(((strlen(buff)%2)!= 0) && 
                (buff[0] == buff[strlen(buff)-1]))
            {
                    
                printf("%s\n", buff);
                delete[] buff;
                i=0;
                buff = new char[strlen(str)];
                
            }
        }
        else
        {
            buff[i] = str[0];
            i++;
        }
                  
    }while(str[0]!='\0');
    return 0;
}
Goblin вне форума Ответить с цитированием
Старый 19.12.2008, 21:29   #3
ivan89
Пользователь
 
Аватар для ivan89
 
Регистрация: 22.09.2008
Сообщений: 59
По умолчанию

Код:
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
void piosk(char*str)
{
	int n=strlen(str);
	char buff[20];
	int k=0,n1;
	for(int i=0; i<=n; i++)
	{
		if(isalnum(str[i])){
			buff[k]=str[i];
			k++;
		}
		if(str[i]==' ' || str[i]=='\0' || str[i]=='\t')
		{
			buff[k]='\0';
			n1=strlen(buff);
			if(n1%2!=0 && buff[0]==buff[k-1])
				cout<< buff <<" ";
			k=0;
		}
	}
}
int main()
{
 cout<<"vvedi stroku ";
 char s[256];
 cin.getline(s,256);
 cout<<"novai stroka\n";
 piosk(s);
 cout<<endl;
	 return 0;
}
ivan89 вне форума Ответить с цитированием
Старый 24.12.2008, 22:54   #4
4ery
 
Регистрация: 18.12.2008
Сообщений: 2
По умолчанию

Спасибо огромное что помогли!
4ery вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками GoAnd Общие вопросы по Java, Java SE, Kotlin 9 22.09.2010 03:36
Работа со строками. ViNcHeStEr Помощь студентам 6 29.06.2008 08:14
РАБОТА СО СТРОКАМИ kluwa Общие вопросы C/C++ 7 20.12.2007 18:30