Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- void reverseStringByWords(char* str, char delim);
- int main() {
- char str[] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor";
- std::cout << str << std::endl;
- reverseStringByWords(str, ' ');
- std::cout << str << std::endl;
- }
- void swap(char* a, char* b);
- void reverseString(char* begin, char* end);
- void reverseStringByWords(char* str, char delim) {
- const size_t size = strlen(str);
- if (size == 0) return;
- char* strEnd = str + size;
- reverseString(str, strEnd - 1);
- char* iterator = str, *wordBegin = str;
- while (iterator != strEnd) {
- if (*iterator == delim) {
- reverseString(wordBegin, iterator - 1);
- wordBegin = iterator + 1;
- }
- iterator++;
- }
- reverseString(wordBegin, iterator - 1);
- }
- void reverseString(char* begin, char* end) {
- while (begin < end) {
- swap(begin++, end--);
- }
- }
- void swap(char* a, char* b) {
- char c = *a;
- *a = *b;
- *b = c;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement