Вопрос по string-у
От: Аноним  
Дата: 13.10.04 11:22
Оценка:
Есть строка, в которой записан путь к файлу, как мне добавить в эту строку после каждого символа '\' еще один '\', чтобы получить "C:\\Folder\\Folder\\File.ext"
Re: Вопрос по string-у
От: Alik Украина  
Дата: 13.10.04 11:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть строка, в которой записан путь к файлу, как мне добавить в эту строку после каждого символа '\' еще один '\', чтобы получить "C:\\Folder\\Folder\\File.ext"


Посмотри в сторону std::transform
С уважением. Алик.
Re: Вопрос по string-у
От: LaptevVV Россия  
Дата: 13.10.04 11:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть строка, в которой записан путь к файлу, как мне добавить в эту строку после каждого символа '\' еще один '\', чтобы получить "C:\\Folder\\Folder\\File.ext"

Прекрасно работает и нормальный слэшь, так что не парься, а напиши
C:/Folder/Folder/File.ext
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Вопрос по string-у
От: greenya Украина  
Дата: 13.10.04 13:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть строка, в которой записан путь к файлу, как мне добавить в эту строку после каждого символа '\' еще один '\', чтобы получить "C:\\Folder\\Folder\\File.ext"


// a = переделываемая
// b = уже выделенный буфер
// возвращает указатель на b
char*b foo(char*a,char*b)
{
int i=0,j=0;
do {
if ((b[j++]=a[i])=='\\') b[j++]='\\';
} while (a[i++])
return b;
}

не проверял, должно работать
Re[2]: Вопрос по string-у
От: achp  
Дата: 13.10.04 13:57
Оценка: +1 -1
Здравствуйте, greenya, Вы писали:

G>не проверял, должно работать


Не проверял, но работать не должно.
Я кончил, джентльмены, мне остается только поблагодарить вас за внимание.
Re: string
От: BacCM Россия  
Дата: 13.10.04 15:48
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть строка, в которой записан путь к файлу, как мне добавить в эту строку после каждого символа '\' еще один '\', чтобы получить "C:\\Folder\\Folder\\File.ext"


Если использовать stl то можно так:

  const char FIND_STRING[]="\\";
  const char REPLACE_STRING[]="\\\\";

  string strPath="C:\\Folder\\Folder\\File.ext";

  for(int i=0;(i=strPath.find(FIND_STRING,i))!=-1;i+=(sizeof(REPLACE_STRING)-1)){
    strPath.replace(strPath.begin()+i,strPath.begin()+i+sizeof(FIND_STRING)-1,REPLACE_STRING);
  }


PS:
Зачем тебе такое нужно? меня терзают смутные сомненя когда вижу что люди пытаются заменить "\" на "\\" программным путем, в 90% случаем это "попытка привести введенную строку к формату хранения строковых литер C"
Re[3]: Вопрос по string-у
От: achp  
Дата: 13.10.04 16:36
Оценка:
Поясню.

Не делается никаких предположений, проверок и попыток обеспечить безопасность работы с памятью.
Я кончил, джентльмены, мне остается только поблагодарить вас за внимание.
Re: Вопрос по string-у
От: Rosigma Украина http://rosigma.com/
Дата: 13.10.04 17:14
Оценка: +1 -2 :)
Здравствуйте, Аноним, Вы писали:

А>Есть строка, в которой записан путь к файлу, как мне добавить в эту строку после каждого символа '\' еще один '\', чтобы получить "C:\\Folder\\Folder\\File.ext"


1. Копируем строку с одним слэшем в буфер обмена.
2. Вставляем ее в открытое окно MS Word
3. Нажимаем Ctrl+H (одновременно)
4. В поле Find впысиваем один слэш, в поле Replace — два
5. Нажимаем Replace All
6. Копируем полученный результат в буфер обмена
7. Вставляем его в редактор кода
8. Не забываем отдохнуть 2 мин.
Roman Yakhymets, http://rosigma.com/, All inside you, ICQ #214741007
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.