Я в тупике - задача с использованием string.h
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Я в тупике - задача с использованием 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). Или остается только забивать вручную для сравнения все буквы и цифры?(ну или все символы)… Если решите буду очень благодарен. Если подскажете - не меньше. Автомат по инфе пропадает((
|
|
|
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 < n; i++)
if ( ch == pattern[i] )
return 1;
return 0;
} for(int i=0; i<strlen(str); i++) типо как возьми за основу и додумай дальше.
|
|
|
RE: Я в тупике - задача с использованием string.h - 2008-05-06 13:13:36.063333
|
|
|
pe$ik
Сообщений: 80
Оценки: 0
Присоединился: 2006-11-06 18:14:02.490000
|
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
char pattern[28]={'!','@','#','$','%','^','&','*','(',')','_','+','"','№',';','%',':','?','*','-','=',',','.','<','>','/','|'};
int in_array( char ch )
{
unsigned int i, n;
n = strlen( pattern );
for( i = 0; i < n; i++) if ( ch == pattern[i] ) return 1;
return 0;
}
void main()
{
char str[100];
cout << "Введите строку: ";
cin.getline(str,sizeof(str));
for(int i=0; i<strlen(str); i++) if(in_array(str[i])==0) cout << str[i];
} Вот)) решение…
|
|
|
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 символов для букв и цифр. Тогда останется только один цикл.
|
|
|
RE: Я в тупике - задача с использованием string.h - 2008-05-07 03:00:27.083333
|
|
|
NightmareZz
Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
|
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
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);
}
|
|
|
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* хмм… я чувствую себя умственно отсталым…
|
|
|
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);
|
|
|
RE: Я в тупике - задача с использованием string.h - 2008-05-08 10:33:16.440000
|
|
|
NightmareZz
Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
|
Автомат пропадает…. да ты ж 0 в программировании…. и всё туда же.
|
|
|
RE: Я в тупике - задача с использованием string.h - 2008-05-08 16:17:59.876666
|
|
|
vvviperrr
Сообщений: 301
Оценки: 0
Присоединился: 2007-03-20 21:33:16.790000
|
такие люди обычно автоматы и получают :( по своей группе вижу.
|
|
|
RE: Я в тупике - задача с использованием string.h - 2008-05-08 16:41:46.166666
|
|
|
pe$ik
Сообщений: 80
Оценки: 0
Присоединился: 2006-11-06 18:14:02.490000
|
Нет, автомат не пропал, мое решение прокатило. Насчет полного нуля… Хм… Не соглашусь с тобой. Я учусь на Машиностроителя а не на Кибера, и программирование нам дают в очень урезанном обьеме, не говоря уже о практике. Самообучаться времени не хватает, т.к. есть интересы поважнее. Нехватающие знания добираю по ходу. Так что не вижу смысла в такой резковыраженной оценке моих знаний.
|
|
|
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. То и в Африке ты будешь нулём.
|
|
|
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++ – это опускание себя в глазах окружающих.
|
|
|
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 и при этом ничего не вернули, то будет возвращён ноль. А ноль в данном случае - суть программа выполнена успешно.
|
|
|
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 и при этом ничего не вернули, то будет возвращён ноль. А ноль в данном случае - суть программа выполнена успешно. За справку, спасибо. Все остальные мои слова в игноре? Видишь лишь покушения на твой авторитет?
|
|
|
RE: Я в тупике - задача с использованием string.h - 2008-05-09 00:52:54.850000
|
|
|
NightmareZz
Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
|
quote:
ORIGINAL: rgo Все остальные мои слова в игноре? Ну…. просто они меня, как-то, не задели….
|
|
|
RE: Я в тупике - задача с использованием string.h - 2008-05-10 05:54:04.190000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Тяжёлый случай. Типичная звёздная болезнь. Просто человеку повезло, он или не сталкивался с более умными людьми или более умные люди оказались не такими выпендрозными.
|
|
|
|
|