Задача: Реверснуть слова в предложении, но не трогать знаки препинания и пояснить что выполняется в каждой строке. Пример: "Hello, world!!! Hi..." -> "olleH, dlrow!!! iH..." Закину первому 25₽
#include<iostream> #include<cstring> using namespace std; void reversit(char [1000]); int main () {setlocale(LC_ALL,"Rus"); cout<<"Введите вашу строку -->"; char a[1000]; cin.get(a,1000); reversit(a); cin.get(); cin.get(); return 0; } void reversit(char b[1000]) {int a1,a2,a3; char c[1000]; a1=strlen(b); a3=a1; for(a2=0;a2<a1;a2++,a3--) c[a2]=b[a3-1]; cout<<c; } --- Сообщение объединено с предыдущим 18 сен 2021 #include <iostream> void print_strrev( char * buf ){ if (*buf) { print_strrev(buf + 1); std::cout << *buf; } } int main(){ const int MAXSIZE = 128; char str[MAXSIZE]; std::cin.getline(str, MAXSIZE); print_strrev(str); std::cout << std::endl; return 0; } --- Сообщение объединено с предыдущим 18 сен 2021 #include <iostream> #include <algorithm> #include <iterator> int main(){ std::string str("test string"); copy(str.rbegin(),str.rend(),std::ostream_iterator<char> (std::cout)); }
egichdebil, напиши код, который на С в специальную хуйню для кода, и заново скинь, а то с табуляцией тут не разберусь
#include <stdbool.h> #include <stdint.h> #include <stdio.h> #include <string.h> #define MAX_LEN 512u void rprint(const char* const s) { const uint16_t len = strlen(s); uint16_t i = 0u; for (; i < len; i++) { putchar(s[len - 1u - i]); } } void ccatch(void) { int8_t c = 0; /* положение символа в строке-накопителе */ uint16_t i = 0u; /* строка-накопитель, будет выводиться задом наперёд */ char sub[MAX_LEN] = { '\0' }; /* считываем данные со стандартного потока */ while (EOF != (c = getchar())) { /* является ли символ буквой, цифрой */ const bool b = ('0' <= c && c <= '9') || ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z'); if (!b) { rprint(sub); /* выводим символы строки в обратном порядке */ putchar(c); /* выводим текущий символ (который не буква и не цифра) */ memset(sub, '\0', MAX_LEN); /* чистим строку - заполняем нуль-терминаторами участок памяти */ i = 0u; continue; /* переходим на следующий шаг, не заканчивая до конца текущую итерацию */ } sub[i++] = c; /* помещаем подходящий символ в строку, увеличиваем счётчик */ } } int main(void) { ccatch(); return 0; } C #include <stdbool.h> #include <stdint.h> #include <stdio.h> #include <string.h> #define MAX_LEN 512u void rprint(const char* const s) { const uint16_t len = strlen(s); uint16_t i = 0u; for (; i < len; i++) { putchar(s[len - 1u - i]); } } void ccatch(void) { int8_t c = 0; /* положение символа в строке-накопителе */ uint16_t i = 0u; /* строка-накопитель, будет выводиться задом наперёд */ char sub[MAX_LEN] = { '\0' }; /* считываем данные со стандартного потока */ while (EOF != (c = getchar())) { /* является ли символ буквой, цифрой */ const bool b = ('0' <= c && c <= '9') || ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z'); if (!b) { rprint(sub); /* выводим символы строки в обратном порядке */ putchar(c); /* выводим текущий символ (который не буква и не цифра) */ memset(sub, '\0', MAX_LEN); /* чистим строку - заполняем нуль-терминаторами участок памяти */ i = 0u; continue; /* переходим на следующий шаг, не заканчивая до конца текущую итерацию */ } sub[i++] = c; /* помещаем подходящий символ в строку, увеличиваем счётчик */ } } int main(void) { ccatch(); return 0; }