|
|
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
))) ну снова я... )))) парни! мне нужно удалить ненужные пробелы в конце строки, считываемой из файла... я как-только не пробовал.. но ведь наверняка есть функция, которая просто обрезает строку по заданной длине? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 10:18 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Andrey_Ohotin))) ну снова я... )))) парни! мне нужно удалить ненужные пробелы в конце строки, считываемой из файла... я как-только не пробовал.. но ведь наверняка есть функция, которая просто обрезает строку по заданной длине? а что юзаете BC++ VC++ ? а вообще наверное '/0' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 10:27 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
я юзаю VS... но я полагаю, что есть конкретная функция, чтобы обрезать определенное количество ненужных символов - за один раз... либо, если у кого есть, какие идеи - как это по другому - вручную сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 10:38 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Andrey_Ohotinя юзаю VS... но я полагаю, что есть конкретная функция, чтобы обрезать определенное количество ненужных символов - за один раз... либо, если у кого есть, какие идеи - как это по другому - вручную сделать? то есть VC :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 10:41 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Andrey_Ohotin мне нужно удалить ненужные пробелы в конце строки Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Если MFCшный CString, то там еще проще - смотри методы: Trim Trims all leading and trailing whitespace characters from the string. TrimLeft Trims leading whitespace characters from the string. TrimRight Trims trailing whitespace characters from the string. наверняка есть функция, которая просто обрезает строку по заданной длине? В STL Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 11:30 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
... а я сделал это так... может коряво конечно.. )) но вручную.. работает! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 13:38 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Andrey_Ohotin... а я сделал это так... может коряво конечно.. )) но вручную.. работает! Тихий ужас :) Чтобы обрезать строку, достаточно на место последнего пробела запихнуть '\0'. Соответсвенно, временный буфер не нужен, можно напрямую читать в list.FIO и править строку уже там. Кстати, в вашем коде ошибка: если будет введена строка из одних пробелов, то произойдет выход за границу массива. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 14:40 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Вот так чуть правильнее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 17:36 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
White OwlВот так чуть правильнее Да, вы правы. В моем случае съедался последний символ строки. Что касается проверки p < (buf+sizeof(buf)), имхо она лишняя, так как если fgets отработала правильно (т.е. вернула не NULL), то строка гарантировано будет завершена нулевым символом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 17:54 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Большое всем спасибо!!!! )))) выручили.. у вас конечно красивей.. ))) нежели у меня.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 18:32 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 19:54 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
roman10если fgets отработала правильно (т.е. вернула не NULL), то строка гарантировано будет завершена нулевым символом Если переменная по логике работы программы никак не может принять какое-либо значение, то она его обязательно примет. (какой-то из законов подлости) Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2005, 06:04 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Из области программерских трюков. Для trim_left(char *s,int n) можно вернуть s+n что есть достаточно быстро но не гарантирует корректности работы софта, если s изменяется или уничтожается раньше чем результат. Сам я такими штуками не пользуюсь, однако есть много любителей.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2005, 14:50 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
То есть эта функция обрезает строку s от начала и до значения переменной n? я Правильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2005, 16:06 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Andrey_OhotinТо есть эта функция обрезает строку s от начала и до значения переменной n? я Правильно понял? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2005, 18:33 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
memmove(str, str+n, strlen(str+n)); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2005, 18:36 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
redskin [src c++] string& trim_str(string& s); string& trim_str(string& s) { return s.erase(s.find_last_not_of(" ")+1); } Здесь разве не происходит возврат временного объекта по ссылке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2005, 01:39 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
MidnightMover redskin Код: plaintext 1. 2. 3. 4. 5. Здесь разве не происходит возврат временного объекта по ссылке? Неа, откуда он там? MSDN basic_string::erase ... (два варианта с параметрами итераторами поскпипаны) basic_string& erase( size_type _Pos = 0, size_type _Count = npos ); Return Value For the third member function, a reference to the string object from which the elements have been erased. наглядная иллюстрация: Код: 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. 44. 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2005, 15:28 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Хм, поспешил и в цитате из доки забыл существенную строчку: Remarks The third member function returns *this . В стандарте (той копии драфта, которая есть под рукой) это п.21.3.5.5 А чтобы в примере было понятно что к чему, лучше изменить пару строк: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2005, 16:32 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
... char str[Длина]; ... Обрезать строку до нужного символа ((char*)strchr(str,'символ'))[0] = NULL; // или 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 19:07 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Анн((char*)strchr(str,'символ'))[0] = NULL; // или 0 А потом удивляемся, почему микрософт такой глючный Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 05:57 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас Анн((char*)strchr(str,'символ'))[0] = NULL; // или 0 А потом удивляемся, почему микрософт такой глючный Posted via ActualForum NNTP Server 1.2 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 10:13 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
А что произойдет, если 'символ' никогда не встретится ? Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 10:53 |
|
||
|
..хм... а КАК? ...можно обрезать строку?
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас А что произойдет, если 'символ' никогда не встретится ? Можно так: if( ((char*)strchr(str,'символ')) != 0) ((char*)strchr(str,'символ'))[0] = 0; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2005, 11:50 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33223817&tid=2032871]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 395ms |

| 0 / 0 |
