Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.02.24;
Скачать: [xml.tar.bz2];

Вниз

Помогите написать одну функцию...   Найти похожие ветки 

 
Антон   (2003-02-08 12:48) [0]

Помогите написать одну функцию, которая будет фильтровать строку. Если она встречает "\x01", то вместо этого пишет символ под номером 1, если встречает "\\", то пишет "\".

Я кое-что написал, но дальше как не знаю. Помогите, пожалуйста.

void filter(char *str)
{
char *pos;

while (TRUE)
{
pos = strstr(str, "\\\\");
if (pos == NULL) break;
}
}


 
Reindeer Moss Eater   (2003-02-08 13:24) [1]

function magicfunction(const AString:string):string;
begin
if AString = "\x01" then Result := "1"
else if AString = "\\" then Result := "\"
else
Result:=AString;
end;


 
Reindeer Moss Eater   (2003-02-08 13:25) [2]

Точнее так:
function magicfunction(const AString:string):string;
begin
if AString = "\x01" then Result := #1
else if AString = "\\" then Result := "\"
else
Result:=AString;
end;



 
Антон   (2003-02-08 13:44) [3]

Упс. Не функцию, а процедуру надо написать, которая фильтрует указанную строку. На C++ :).

Reindeer Moss Eater (08.02.03 13:25)
А что если AString = "asd\x01фыв" ??



 
Reindeer Moss Eater   (2003-02-08 14:00) [4]

А ничего.

Если она встречает "\x01", то вместо этого пишет символ под номером 1, если встречает "\\", то пишет "\".

Я должен догадаться, что ты от нее ждешь в любом случае?


 
Anatoly Podgoretsky   (2003-02-08 14:11) [5]

procedure magicfunction(const AString:string);
begin
if AString = "\x01" then Result := #1
else if AString = "\\" then Result := "\"
else
Result:=AString;
end;


В C++ нет процедур!


 
Антон   (2003-02-08 14:18) [6]

Reindeer Moss Eater (08.02.03 14:00)

Объясняю. Если AString = "asd\x01фыв", то ничего у тебя не выйдет. Надо использовать pos. На дельфях я могу такое сделать, но мне надо на C.


Anatoly Podgoretsky © (08.02.03 14:11)э

Что такое процедура, что такое функция? Функция - возвращает результат своей работы (int main();). Процедура ничего не возвращает (void filter();). Понятно, а?


 
uw   (2003-02-09 10:37) [7]

void filter(char *s){
int i = 0, j = 0;
int wasSlash = 0;

while(s[i]){
if(s[i] == "/"){
if(!wasSlash)
s[j++] = "/";
wasSlash = 1;
}else{
wasSlash = 0;
if(s[i] == 1)
s[j++] = s[0]; /* May be I"m wrong here */
else
s[j++] = s[i];
}
i++;
}
s[j] = 0;
}


 
Anatoly Podgoretsky   (2003-02-09 11:34) [8]

Антон (08.02.03 14:18)
Правильно!
Так что то теперь у тебя не должно быть особых проблем с преобразованием фцнкции в процедуру.
Но в твоем примере логически все равно функция с возвращением void, так как нет в Си процедур, то им приходится изврщаться вот таким способом.

А вот это Антон (08.02.03 13:44) надо делать было сразу, что бы тебе не пытались давать примеры на Дельфи, если свое время не ценишь, то цени хотя бы чужое.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.02.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.014 c
1-75953
vil
2003-02-12 12:26
2003.02.24
ссылка на www.


14-76113
vopros
2003-02-05 17:17
2003.02.24
Я закодировался.И чувствую себя великолепно.


3-75777
ArtemB
2003-02-06 08:55
2003.02.24
2 вопроса


14-76139
ZeroDivide
2003-02-06 15:45
2003.02.24
Примеры красивого кода


14-76151
Шоломицкий
2003-02-07 17:26
2003.02.24
Предлагают работу! Помогите плиз!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский