Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Я в тупике - задача с использованием string.h

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Я в тупике - задача с использованием string.h
Имя
Сообщение << Старые топики   Новые топики >>
Я в тупике - задача с использованием string.h - 2008-05-06 07:48:41.623333   
pe$ik

Сообщений: 80
Оценки: 0
Присоединился: 2006-11-06 18:14:02.490000
quote:

Дана символьная константа. Исключить из ее состава символы, не являющиеся буквами или цифрами.


Вроде задачка простая, но на основе материала что нам дали (четыре функции strcpy(), strcat(), strcmp(), strlen()) и стандартных средств, простое решение не получается((( Может есть возможность аналогичная той что в паскале(там можно в цикле перебирать i от A до z). Или остается только забивать вручную для сравнения все буквы и цифры?(ну или все символы)… Если решите буду очень благодарен. Если подскажете - не меньше. Автомат по инфе пропадает((
Post #: 1
RE: Я в тупике - задача с использованием string.h - 2008-05-06 09:16:35.876666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
int in_array( char ch ) { unsigned int i, n; n = strlen( pattern ); for( i = 0; i &lt; n; i++) if ( ch == pattern[i] ) return 1; return 0; } for(int i=0; i&lt;strlen(str); i++) типо как возьми за основу и додумай дальше.
Post #: 2
RE: Я в тупике - задача с использованием string.h - 2008-05-06 13:13:36.063333   
pe$ik

Сообщений: 80
Оценки: 0
Присоединился: 2006-11-06 18:14:02.490000
#include&lt;iostream.h&gt; #include&lt;string.h&gt; #include&lt;stdlib.h&gt; #include&lt;conio.h&gt; char pattern[28]={'!','@','#','$','%','^','&','*','(',')','_','+','"','№',';','%',':','?','*','-','=',',','.','&lt;','&gt;','/','|'}; int in_array( char ch ) { unsigned int i, n; n = strlen( pattern ); for( i = 0; i &lt; n; i++) if ( ch == pattern[i] ) return 1; return 0; } void main() { char str[100]; cout &lt;&lt; "Введите строку: "; cin.getline(str,sizeof(str)); for(int i=0; i&lt;strlen(str); i++) if(in_array(str[i])==0) cout &lt;&lt; str[i]; }
Вот)) решение…
Post #: 3
RE: Я в тупике - задача с использованием string.h - 2008-05-06 13:26:34.706666   
rtw

Сообщений: 1372
Оценки: 0
Присоединился: 2004-08-19 00:28:05
1. bool in_array имхо разумнее
2. Сложность твоего алгоритма P(n^2). Т.е. при самом худшем условии у тебя получается 2 вложенных цикла 28 * 100 операция сравнения
Как вариант сравнивать 2 диапазона ASCII символов для букв и цифр. Тогда останется только один цикл.
Post #: 4
RE: Я в тупике - задача с использованием string.h - 2008-05-07 03:00:27.083333   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
#include &lt;ctype.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;stdio.h&gt; int main() { const char *s1 = "Hello, World!"; char *s2, *c; s2 = malloc(strlen(s1) + 1); for (c = s2; *s1; s1++) { if (isalnum(*s1)) { *c = *s1; c++; } } *c = '\0'; printf("%s", s2); free(s2); }
Post #: 5
RE: Я в тупике - задача с использованием string.h - 2008-05-08 04:49:57.353333   
pe$ik

Сообщений: 80
Оценки: 0
Присоединился: 2006-11-06 18:14:02.490000
quote:

Как вариант сравнивать 2 диапазона ASCII символов для букв и цифр. Тогда останется только один цикл.

Я думал об этом, но в универе не давали материала по ASCII функциям… Поэтому и пришлось извращаться до такой степени.

s2 = malloc(strlen(s1) + 1); - выдает ошибку: invalid conversion void* to char*

хмм… я чувствую себя умственно отсталым…
Post #: 6
RE: Я в тупике - задача с использованием string.h - 2008-05-08 09:20:53.896666   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
quote:

ORIGINAL: pe$ik

quote:

Как вариант сравнивать 2 диапазона ASCII символов для букв и цифр. Тогда останется только один цикл.

Я думал об этом, но в универе не давали материала по ASCII функциям… Поэтому и пришлось извращаться до такой степени.

s2 = malloc(strlen(s1) + 1); - выдает ошибку: invalid conversion void* to char*

хмм… я чувствую себя умственно отсталым…


Бугак :)
Ну так приведи void* к char*:

s2 = (char*)malloc(strlen(s1) + 1);
Post #: 7
RE: Я в тупике - задача с использованием string.h - 2008-05-08 10:33:16.440000   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
Автомат пропадает…. да ты ж 0 в программировании…. и всё туда же.
Post #: 8
RE: Я в тупике - задача с использованием string.h - 2008-05-08 16:17:59.876666   
vvviperrr

Сообщений: 301
Оценки: 0
Присоединился: 2007-03-20 21:33:16.790000
такие люди обычно автоматы и получают :( по своей группе вижу.
Post #: 9
RE: Я в тупике - задача с использованием string.h - 2008-05-08 16:41:46.166666   
pe$ik

Сообщений: 80
Оценки: 0
Присоединился: 2006-11-06 18:14:02.490000
Нет, автомат не пропал, мое решение прокатило. Насчет полного нуля… Хм… Не соглашусь с тобой. Я учусь на Машиностроителя а не на Кибера, и программирование нам дают в очень урезанном обьеме, не говоря уже о практике. Самообучаться времени не хватает, т.к. есть интересы поважнее. Нехватающие знания добираю по ходу. Так что не вижу смысла в такой резковыраженной оценке моих знаний.
Post #: 10
RE: Я в тупике - задача с использованием string.h - 2008-05-08 20:15:35.076666   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
quote:

ORIGINAL: pe$ik
Нет, автомат не пропал, мое решение прокатило. Насчет полного нуля… Хм… Не соглашусь с тобой. Я учусь на Машиностроителя а не на Кибера, и программирование нам дают в очень урезанном обьеме, не говоря уже о практике. Самообучаться времени не хватает, т.к. есть интересы поважнее. Нехватающие знания добираю по ходу. Так что не вижу смысла в такой резковыраженной оценке моих знаний.


Да хоть на балерину. Если ты в программинге - 0. То и в Африке ты будешь нулём.
Post #: 11
RE: Я в тупике - задача с использованием string.h - 2008-05-08 22:49:22.886666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
найт, достал уже. Не все люди сталкивающиеся с программированием – программисты. И вовсе не повод чмырить кого-то, за то, что он не будучи программистом столкнулся с программированием. Программирование – это лишь одна из профессий. Типа сантехника. Ею можно гордиться, как и любой другой профессией, но держи свою гордость при себе, она – твоё личное дело.
Я и согласен с тобой, что уж машиностроитель должен иметь технический склад ума и должен справиться программированием. Но линусом торвальдсом ему вовсе незачем становиться. Я б, тем не менее согласился бы с "в Африке ты будешь нулём", если бы ТС действительно был бы абсолютным нулём в программировании. Но это не так. Хоть никаких высот он не достиг, но он действительно продемонстрировал свою отличность от нуля, причём на конечную величину. А вот ты, достигнув высот, забываешь про return в `int main ()'.

Ты радуешься глядя на то, как человек опускает себя не зная, что такое приведение типа? Но, во-первых, я рассказывая азы C, не рассказываю про приведения типов. Объезжаю все эти приведения всеми доступными способами. Нафига ими замусоривать мозги тех, кому нужна алгоритмика, а не синтаксис? Во-вторых, судя по приведённым программам, они изучают C, а в C приведение типов, в данной ситуации не нужно. Современные компиляторы C, знают про malloc, и чтоб не замусоривать вывод глупостями, они не просто согласно стандарту позволяют такое неявное преобразование адреса, но даже варнингов не пишут об этом неявном приведении.
Это я к тому, но по-крайней мере часть проблем автора – это проблемы порождённые неквалифированными преподами, которые преподавая C, суют студентам компилятор C++ для практики.

Мне непонятно откуда столько радости. Нашёлся кто-то кто знает C++ хуже тебя? Выйди на улицу и радуйся: уверяю тебя, что как минимум 999 из 1000 встреченных тобою людей будут знать c++ хуже тебя. И мне непонятно, почему ты считаешь что демонстрация незнания правил приведения типов в c++ – это опускание себя в глазах окружающих.
Post #: 12
RE: Я в тупике - задача с использованием string.h - 2008-05-08 23:11:59.756666   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
quote:

ORIGINAL: rgo
А вот ты, достигнув высот, забываешь про return в `int main ()'.

Ещё один :D
Бери Пё$ика и идите читать Стандарт:

If control reaches the end of main without encountering a return statement, the effect is that of executing return 0

Перевожу на русский, если мы вышли из main и при этом ничего не вернули, то будет возвращён ноль. А ноль в данном случае - суть программа выполнена успешно.
Post #: 13
RE: Я в тупике - задача с использованием string.h - 2008-05-09 00:45:16.973333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: NightmareZz
quote:

ORIGINAL: rgo
А вот ты, достигнув высот, забываешь про return в `int main ()'.

Ещё один :D
Бери Пё$ика и идите читать Стандарт:

Зачем ему стандарт? Вот ты объясни мне?

quote:

ORIGINAL: NightmareZz
If control reaches the end of main without encountering a return statement, the effect is that of executing return 0
Перевожу на русский, если мы вышли из main и при этом ничего не вернули, то будет возвращён ноль. А ноль в данном случае - суть программа выполнена успешно.

За справку, спасибо.

Все остальные мои слова в игноре? Видишь лишь покушения на твой авторитет?
Post #: 14
RE: Я в тупике - задача с использованием string.h - 2008-05-09 00:52:54.850000   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
quote:

ORIGINAL: rgo
Все остальные мои слова в игноре?


Ну…. просто они меня, как-то, не задели….
Post #: 15
RE: Я в тупике - задача с использованием string.h - 2008-05-10 05:54:04.190000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Тяжёлый случай. Типичная звёздная болезнь. Просто человеку повезло, он или не сталкивался с более умными людьми или более умные люди оказались не такими выпендрозными.
Post #: 16
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Я в тупике - задача с использованием string.h







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.