Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Есть строка char* c, в ней хочется удалить первый символ. Имеется ли возможность скопировать в неё строку из строки по адресу c+1? Или только циклом пробегаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 12:31 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Charles Weyland, memmove() поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 12:58 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Charles Weyland, Для strcpy строки не должны перекрываться $ man strcpy | grep overlap The strcpy() function copies the string pointed to by src, including the terminating null byte ('\0'), to the buffer pointed to by dest. The strings may not overlap, and the destination string dest must be large из функций можно использовать memmove, но если это частный случай то быстрее циклом т.к. не нужно считать длину. а вообще покажи код полностью - ты потом этот указатель куда суешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 13:00 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Можно вообще не копировать, просто взять указатель Код: plaintext 1. Но дальше у тебя код должен гарантировать что в d ничего писаться не будет и c будет существовать неизменным пока используется d ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 13:20 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
PPAа вообще покажи код полностью - ты потом этот указатель куда суешь? дано: строка char* s = "item{#0}/r{#2}/opa{#1}" и массив a[0]=4, a[1]=1, a[2]=7 я получил массив параметров char*, со значениями "{#0}" "{#2}" "{#1}" - массив извлечён регуляркой из искомой строки Задача: переделать s в строку "item4/r7/opa1" и вернуть её в качестве результата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 13:27 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Dima TМожно вообще не копировать, просто взять указатель Код: plaintext 1. Но дальше у тебя код должен гарантировать что в d ничего писаться не будет и c будет существовать неизменным пока используется d надо именно копировать, чтобы убрать лишние символы после замены {#1} на число облегчение состоит в том, что строка при заменах только сжимается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 13:28 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
snprintf() не подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 13:30 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
кстати, какой толковый способ преобразования есть? Код: plaintext 1. 2. ? сделал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. мог опечататься, но суть такая. Что-то тут много кода, что-то я не учёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 13:38 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
ок, понял Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 13:44 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Charles Weylandоблегчение состоит в том, что строка при заменах только сжимается Точно сжимается? Массив a какого типа? там не может такого оказаться a[3]=12313? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 13:51 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
PPAМассив a какого типа? там не может такого оказаться a[3]=12313? unsigned int* a; но в нём значения могут быть где-то до 9. Анреал, если будет значение 99. А если 100 или больше, то такой массив не пройдёт проверку и вылетит эксепшн ещё до выполнения данного алгоритма, т.к. явно что-то пошло не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 13:59 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Charles WeylandЕсть строка char* c, в ней хочется удалить первый символ. Имеется ли возможность скопировать в неё строку из строки по адресу c+1? Или только циклом пробегаться?прям надо pure C? std::string + replace чем не подходит? PS если хрустальный шар не врёт, то у тебя ведь стройка же, бери AnsiString тогда, и не мучай ни себя, ни окружающих )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 14:31 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
egorychто у тебя ведь стройка же стройка?)) что за стройка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 14:39 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Charles Weylandegorychто у тебя ведь стройка же стройка?)) что за стройка?C++ Builder ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 15:03 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
ms vs 2012 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 15:27 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Charles WeylandPPAа вообще покажи код полностью - ты потом этот указатель куда суешь? дано: строка char* s = "item{#0}/r{#2}/opa{#1}" и массив a[0]=4, a[1]=1, a[2]=7 я получил массив параметров char*, со значениями "{#0}" "{#2}" "{#1}" - массив извлечён регуляркой из искомой строки Задача: переделать s в строку "item4/r7/opa1" и вернуть её в качестве результата. В С строки не возвращаются. А для решения такой простейшей задачи одного цикла достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 15:32 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Charles Weylandms vs 2012ну, значит сбоит шар сегодня )) бери std::string и не мучайся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 15:48 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
egorych, Если уже используется boost, то так: #include <boost/algorithm/string/replace.hpp> Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 15:54 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Charles Weyland, man 3 sscanf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2016, 01:13 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
мне ответ, в принципе, довольно быстро прилетел - я воспользовался memmove ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2016, 01:36 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Charles Weyland, если это был ответ на мой пост - то я про кстати, какой толковый способ преобразования есть? Не разобрался, как тут можно посмотреть, на какое сообщение ответ идёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2016, 01:53 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
аа, понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2016, 02:01 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
akuzaman 3 sscanf ооо, охрененная функция. Только сейчас глянул её описание. Прям бомба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2016, 02:04 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Charles Weylandдано: строка char* s = "item{#0}/r{#2}/opa{#1}" и массив a[0]=4, a[1]=1, a[2]=7Charles WeylandЗадача: переделать s в строку "item4/r7/opa1" и вернуть её в качестве результата.Если использовать std::string, то я бы сделал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. Хотя код с replace наверное проще будет. Charles Weyland Код: plaintext 1. Если ищем один символ, то лучше использовать функцию strchr. Charles WeylandPPAМассив a какого типа? там не может такого оказаться a[3]=12313? unsigned int* a; но в нём значения могут быть где-то до 9. Анреал, если будет значение 99.Это сейчас. А через год всё может сильно измениться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2016, 03:52 |
|
||
|
Можно strcpy(c, c+1) делать?
|
|||
|---|---|---|---|
|
#18+
Пётр СедовЭто сейчас. А через год всё может сильно измениться. Это как рост человека - ни сейчас, ни через 50 лет он не будет километр. В контексте предметной области 99 - нереально. При этом программа позволит осуществлять замены до 9999, т.к. {#n} - 4 символа. Поэтому расширения точно не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2016, 09:16 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39325787&tid=2018412]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 160ms |

| 0 / 0 |
