надо написать программу,удаляющую из слова каждую третью букву
я её написал,но не могу сделать так что бы из первого слова тоже удалялась 3-я буква.
Вот код
#include<stdio.h>
#include<string.h>
#include<conio.h>
void main()
{
clrscr();
int i, j;
char s[50], ss[50] = {0};
printf("ўўҐ¤ЁвҐ бва®Єг:");
gets(s);
for(i = 0, j = 0; i < strlen(s); i++)
if(s[i-3] != ' ')
ss[j++]=s[i];
printf("Ё§¬ҐҐ п бва®Є : %s", ss);
getch();
}
#include<string.h>
#include<conio.h>
void main()
{
clrscr();
int i, j;
char s[50], ss[50] = {0};
printf("ўўҐ¤ЁвҐ бва®Єг:");
gets(s);
for(i = 0, j = 0; i < strlen(s); i++)
if(s[i-3] != ' ')
ss[j++]=s[i];
printf("Ё§¬ҐҐ п бва®Є : %s", ss);
getch();
}
1 апреля 2010 в 9:04
s = (char*)malloc(512); <- А если у меня под char 2 байта? =)
Уж если вы*бываться, так до конца
if(isalpha(s[i])) <- вот эта хрень думаю излишняя. Подразумевается, что каждый символ слова – буква. Пусть это даже и цифра.
А вы вкурсе, что функция free не зименяет указатель? Т.е. указатель char* s у вас некоторое время указывает на какой то мусор в памяти. Это дурной тон батенька. Если почистил память под указателем, то изволь и указатель занулить. Я конечно понимаю что в такой проге это не критично, т.к. при завершении функции указатель перестанет существовать, но если бы это была прога побольше?
31 марта 2010 в 22:02
фиг с вами, напишу. но потом не жалуйтесь:
#include<stdio.h>
#include<string.h>
#include<conio.h>
void main()
{
clrscr();
int i, j, k;
char *s;
printf("введите строку:");
s = (char*)malloc(512);
gets(s);
for(i = 0, j = 0, k =0; s[i]; i++){
if(isalpha(s[i])) k++; else k=0;
if(!k || k%3) s[i-j]=s[i]; else j++;
}
s[i-j]=0;
printf("измее я строк : %s", s);
free(s);
getch();
}
здесь нет проверок на длину строки, но для лабораторной сойдет.
31 марта 2010 в 19:02
легче самому изучить и исправить…
31 марта 2010 в 19:01
здрасти , мне нужен прогер который отлично знает пхп , есть у меня скрипты онлайн игры там надо 2-3 файлаисправить . 216959727 – пишите ( За услугу конечно же плачу )
31 марта 2010 в 18:05
>>> Надо написать программу, удаляющую из слова каждую третью букву.
Я её написал.
<<< Раз ты её написал то зачем тогда что-то спрашиваешь?
31 марта 2010 в 18:05
Пишите функцию, котрая удаляет определенный элемент массива. Т.е. Просто смещает все элементы справа на единцу к началу. Вызываете её для каждого 3го элемента. Это если слово в строке одно.
Если там предложение, или же набор слов, то вводите дополнительный счетчик для определения номера буквы в слове, который обнуляется при переходе через пробел, и по нему удаляете символы.
Я бы так сделал.
31 марта 2010 в 17:05
//govnokod.ru/автор тебе туда.
31 марта 2010 в 16:05
#5. Создайте отдельную тему, а?
З.Ы. 99% проблема с мамкой ноута.
31 марта 2010 в 16:02
на моём ноутбуке есть внешний порт SATA, при подклячении любого устройсва через этот порт -компьютер нагло, не попрощавшись со своим хозяином(в английском стиле) вырубается. причём с дольнейшее вклячение компьютера возможно только если его вырубить от сети и снять и снова вставить батарею, или не вставлять её снова а просто подрубить к сети.
ВОПРОС ЗНАТОКАМ:
что может вызвать данную неполадку и как её устранить?
31 марта 2010 в 14:05
ну так мне и надо пропускать элементы массива кроме 3
31 марта 2010 в 14:01
хахаха а че слабо самому практику сделать?!)))
31 марта 2010 в 14:01
for(i = 0, j = 0; i < strlen(s); i++)
if(s[i-3] != ' ')
ss[j++]=s[i];
а что вы хотите? в первом (и не только) проходе цикла вы пытаетесь читать мимо массива.