Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Замена символа

1.2K
30 ноября 2005 года
richel
142 / / 20.01.2005
У меня есть функция по замене символа. Мне нужно в строке символ окончания строки ("\r") заменить на пробел. Не могу сообразить, как символы записать в функии. У меня путаница с типом данных.
 
Код:
void strreplace(char * s, char ch1, char ch2) {
   int i;
   char * ptr;
   if( s != NULL ) {
      for( ptr=s,i=strlen(s) ; i > 0 ; i--,ptr++ ) {
         if( *ptr == ch1 ) *ptr=ch2;
      }
   }
}


 
Код:
AnsiString fld = "hjhhj hhh ";
String result = strreplace(fld, "\r", "\t")

Подскажите, пожалуйста, как правильно?
2.2K
30 ноября 2005 года
123tk
57 / / 28.06.2003
 
Код:
void strreplace(char *s, char ch1, char ch2)
{
   char *ptr = s;
   while(ptr)
   {
      if(*ptr==ch1)*ptr=ch2;
      ptr++;
   }
}
 
Код:
AnsiString fld = "hjhhj hhh ";
strreplace(fld.c_str(), '\r', '\t')
1.2K
30 ноября 2005 года
richel
142 / / 20.01.2005
Цитата:
Originally posted by 123tk
 
Код:
void strreplace(char *s, char ch1, char ch2)
{
   char *ptr = s;
   while(ptr)
   {
      if(*ptr==ch1)*ptr=ch2;
      ptr++;
   }
}
 
Код:
AnsiString fld = "hjhhj hhh ";
strreplace(fld.c_str(), '\r', '\t')


Так я пробовала, только присваивала

 
Код:
String result = strreplace

А можно же сделать так

 
Код:
String result = fld;
?
2.2K
30 ноября 2005 года
123tk
57 / / 28.06.2003
Можно
AnsiString fld = "hjhhj hhh ";
strreplace(fld.c_str(), ' ', '*');
AnsiString str = fld;
ShowMessage(str);

а String result = strreplace, не проходит, так как strreplace не возвращает результата. Нужно
 
Код:
char *strreplace(char *s, char ch1, char ch2)
{
   char *ptr = s;
   while(ptr)
   {
      if(*ptr==ch1)*ptr=ch2;
      ptr++;
   }
   return s;
}
2.4K
30 ноября 2005 года
Lexogen
70 / / 18.05.2004
Цитата:
Originally posted by richel
У меня есть функция по замене символа. Мне нужно в строке символ окончания строки ("\r") заменить на пробел. Не могу сообразить, как символы записать в функии. У меня путаница с типом данных.
 
Код:
void strreplace(char * s, char ch1, char ch2) {
   int i;
   char * ptr;
   if( s != NULL ) {
      for( ptr=s,i=strlen(s) ; i > 0 ; i--,ptr++ ) {
         if( *ptr == ch1 ) *ptr=ch2;
      }
   }
}


 
Код:
AnsiString fld = "hjhhj hhh ";
String result = strreplace(fld, "\r", "\t")

Подскажите, пожалуйста, как правильно?



void strreplace(char * s, char ch1, char ch2) {
for (int i=0;i<strlen(s);i++)
if (s == ch1)
s=ch2;
}

AnsiString fld = "hjhhj hhh ";
String result = strreplace(fld.c_str(), '\r', '\t');

830
01 декабря 2005 года
MVal
76 / / 17.10.2002
Для замены символа (группы символов) на символ (или на что другое) в строке я обычно использую AnsiReplaceText
#include <StrUtils.hpp>
..................
AnsiString fld = "hjhhj hhh ";
AnsiString result = AnsiReplaceText(fld, "\r", "\t");

Сам не проверял, пишу на глаз.
Попробуй, вдруг поможет.
2.4K
01 декабря 2005 года
Lexogen
70 / / 18.05.2004
Цитата:
Originally posted by Lexogen
void strreplace(char * s, char ch1, char ch2) {
for (int i=0;i<strlen(s);i++)
if (s == ch1)
s=ch2;
}

AnsiString fld = "hjhhj hhh ";
String result = strreplace(fld.c_str(), '\r', '\t');



Сорры. Немного ошибся. Нужно так:
char * strreplace(char * s, char ch1, char ch2) {
for (int i=0;i<strlen(s);i++)
if (s == ch1)
s=ch2;
return s;
}

AnsiString fld = "hjhhj hhh ";
String result = strreplace(fld.c_str(), '\r', '\t');

1.2K
01 декабря 2005 года
richel
142 / / 20.01.2005
Спасибо! Просто обилие вариантов.
Я уже все сделала.:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог