Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Замена символов (http://forum.oszone.net/showthread.php?t=30611)

Guest 10-03-2003 00:48 209330

Как написать программу на Си, которая бы заменяла определенные символы,вводимые с клавиатуры, на другие (например все А на Б). Вводится типа string.

mar 10-03-2003 01:42 209331

Цитата:

программу на Си
Цитата:

Вводится типа string.
Guest ты уверен? ;)

Guest 11-03-2003 00:53 209332

Нет. Просто на Си. Со стрингом вылетело случайно, пардон.

Vaulter 11-03-2003 01:36 209333

ну std::string то есть в Си++ как контейнер
а вообще принцип:
сделать хук на клаву.
обрабатывать поступающие коды и если че
заменять (как? отдельный разговор) )))

Akaam 11-03-2003 07:16 209334

Код:

#include <conio.h>
int main(int argc, char* argv[])
{
 *intsImp;
 *for(;;)
 *{
 * *sImp=getch();
 * *if(sImp==27)
 * * *break;
 * *if(sImp=='a')
 * * *sImp='b';
 * *if(sImp=='A')
 * * *sImp='B';
 * *putch(sImp);
 *}
 *return 0;
}


[s]Исправлено: noname00.pas, 8:06 19-03-2003[/s]

Guest 12-03-2003 00:11 209335

Большое Спасибо

Guest 12-03-2003 17:04 209336

А если сначала просто вводится, без замены (ввели какое-то предложение), а потом происходит замена и выводится уже с заменой.

Crew 18-03-2003 22:31 209337

Код:

#include <stdio.h>
#include <string.h>
int repl(char *source,const char*str1,const char *str2)
{
 * *int len_source=strlen(source);
 * *int len2=strlen(str1);
 * *int len3=strlen(str2);
 * *if (len_source==0||len2==0||len3==0)
 * * * * *return -1;
 * *if (len2!=len3)
 * * * * *return -2;

 * *for (int i=0;source[i]!='\0';i++)
 * *{
 * * * for (int j=0;j<len2;j++)
 * * **if (source[i]==str1[j])
 * * *{
 * * * * *source[i]=str2[j];
 * * *}
 * *}
 *return 0;
}
void main()
{
 * *char str[]="This is a string ABC";
 * *repl(str,"A","Z");
 * *printf("%s\n",str);
}

Хотя возможно есть уже такая функция встроенная где-нибудь

[s]Исправлено: Crew, 22:35 18-03-2003[/s]

Добавлено:

И зачем оно курсивом стало? :(
Не буду исправлять второй раз, но можно вызывать и так
repl(str,"AaW","Bbz")
меняется
A на B
a на b
W на z


[s]Исправлено: noname00.pas, 8:06 19-03-2003[/s]

noname00.pas 19-03-2003 11:09 209338

Товарищи! Используйте пожалуйста тег CODE ;-)

Crew 19-03-2003 22:09 209339

noname00.pas
Уговорили, только курсив в коде остался
:(

noname00.pas 19-03-2003 22:14 209340

Это временные неполадки, которые (возможно) скоро будут устранены :-)

ivank 19-03-2003 23:11 209341

noname00.pas
Эээ... Это скоро уже год тянется :)

Теперь внутри [
Код:

][
] тэги не действуют.

noname00.pas 20-03-2003 01:01 209342

IvanK, а ты прочитал соответствующую тему в админском форуме?

ivank 20-03-2003 17:55 209343

noname00.pas
Ты не поверишь, но ты же этот вопрос поднимал и ранее (как раз около года назад), но мне было лень напрягаться и я использовал традиционную отмазу в стиле "и так удобно".

А тему я по непонятным причинам вчера не заметил, т.е. заметил только сегодня, когда уже всё было исправлено :)


Время: 02:47.

Время: 02:47.
© OSzone.net 2001-