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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2013, 18:44   #1
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию Строки

Задание: дана строка символов. Удалить из нее все гласные буквы.
Решение:
Код:
# include <stdio.h>
int main()
{
int k;
char s1[10], *S2="Hello, world";
printf("%s", *s2);
for (k=0; (*S2)!= '\0'; S2++)
if () 
s[10]=
k++;
printf("",k);
return 0;
}
Как мне найти все гласные, просто перечислить их в условии или есть другой способ.
East Undia Trading вне форума Ответить с цитированием
Старый 13.12.2013, 19:34   #2
_BYTE
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 56
По умолчанию

Код:
Function F(Text: String): String;
Const Gl: Set of Char = ['A', 'E'];
Var i: Integer;
begin
for i:= 1 to Length(Text) do
if Text[i] in GL then Delete(Text,i,1);
Result:= Text;
end;
типа того + добавь остальные гласные
_BYTE вне форума Ответить с цитированием
Старый 13.12.2013, 19:35   #3
_BYTE
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 56
По умолчанию

ой тьфу не заметил что язык Си
_BYTE вне форума Ответить с цитированием
Старый 13.12.2013, 21:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
просто перечислить их в условии
Это самый надежный способ.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.12.2013, 01:32   #5
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

Stilet, сделал как вы посоветовали, но только потому что не нашел другого решения, так я сдавать точно не буду.
Все же, следующий вопрос, как мне грамотно удалить эти самые гласные?Сейчас я могу объявить символьный массив с определенным кол-во мусора и туда запихать новые значения - это не дело.
Вот тут мне показывали пример того, как удалить из массива определенные элементы, но я не до конца понял как работает этот кусок программы.
Код:
for (i = 0; i < n; ++i)
        if (A[i] % a && A[i] % b) 
		{
            *Q = A[i];
            ++Q;
        }
Собсно, что имею сейчас.
Код:
# include <stdio.h>
int main()
{
int k;
char S1[10], *S2="Hello, world", *S1;
*S1=&S1[10];
printf("%s", *s2);
for (k=0; (*S2)!= '\0'; S2++)
{
if (S2!=b && S2!=c && S2!=d && S2!=f && S2!=g && S2!=h &&  S2!=j && S2!=k && S2!=l &&
 S2!=m && S2!=n && S2!=p && S2!=q && S2!=r && S2!=s && S2!=t && S2!=v && S2!=w && S2!=x && S2!=z) 
k++;
}
printf("",k);
return 0;
}
East Undia Trading вне форума Ответить с цитированием
Старый 14.12.2013, 13:36   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Есть еще такой способ:
Код:
#include <stdio.h>
#include <string.h>

main()
{
char s[255]={0};
char *g="eioauy";
int i,k;
scanf("%s",&s[0]);
for(i=0,k=0;s[i];i++){
 if(!strchr(g,s[i])) s[k++]=s[i];
} s[k]=0;
printf("%s",s);
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 5 09.02.2013 14:07
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки Алексей_2012 Помощь студентам 1 05.04.2012 11:26
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10