Форум программистов, компьютерный форум CyberForum.ru

Заменить все(один) символ(ы) в Unicode строке - C++

Восстановить пароль Регистрация
 
ems2811
2 / 2 / 0
Регистрация: 14.04.2009
Сообщений: 36
17.06.2014, 17:29     Заменить все(один) символ(ы) в Unicode строке #1
Здравствуйте. поиск по интернету не дал результатов. Каким образом можно заменить все вхождения символа в строке wchar_t (visual studio) или хотя бы одного, чтоб функцию сам написал?
например в строке заменить \ на / без преобразования
C++
1
wchar_t *str=L"C:\\Temp\\folder"
строка L"X" при таком подходе видимо имеет терминатор (что внезапно обрывает строку)
C++
1
wcscpy(&s[1],L"X");
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2014, 17:29     Заменить все(один) символ(ы) в Unicode строке
Посмотрите здесь:

C++ Найти в строке string наиболее часто встречающуюся пару символов и заменить на один новый символ
Есть ли в строке хоть один символ? C++
C++ [C++] в строке символов заменить каждый второй символ s на f
Заменить в строке последовательность пробелов на один пробел. C++
Заменить в каждой сроке один заданный символ на другой заданный символ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
17.06.2014, 17:51     Заменить все(один) символ(ы) в Unicode строке #2
C++
1
s[1] = L'X';
ems2811
2 / 2 / 0
Регистрация: 14.04.2009
Сообщений: 36
17.06.2014, 19:04  [ТС]     Заменить все(один) символ(ы) в Unicode строке #3
так можно если строка сделана не указателем (L"X" = [L"X"][0])
C++
1
2
wchar_t str[]=L"Some text";
str[3]=L"X"[0]
а как можно если строка объявлена так:
C++
1
wchar_t *str=L"Some text"
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
17.06.2014, 21:07     Заменить все(один) символ(ы) в Unicode строке #4
Какая разница? С указателем также. И не надо L"X"[0], просто L'X' (с одинарными кавычками).
ems2811
2 / 2 / 0
Регистрация: 14.04.2009
Сообщений: 36
17.06.2014, 22:31  [ТС]     Заменить все(один) символ(ы) в Unicode строке #5
C++
1
2
wchar_t *t=L"Text";
t[1]=L'X';
Unhandled exception: Access violation
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
17.06.2014, 22:47     Заменить все(один) символ(ы) в Unicode строке #6
Не задавай так строку.
C++
1
2
3
wchar_t str0[]=L"Some text";
wchar_t *t = str0;
t[1]=L'X';
Yandex
Объявления
17.06.2014, 22:47     Заменить все(один) символ(ы) в Unicode строке
Ответ Создать тему
Опции темы

Текущее время: 01:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru