Используя функции из библиотеки string, инвертировать все слова в строке - C (СИ)
Формулировка задачи:
Помогите с реализацией пожалуйста. Используя функции из библиотеки string,инвертировать все слова в строке, последовательность слов сохранить. Строка считывается до точки.
Решение задачи: «Используя функции из библиотеки string, инвертировать все слова в строке»
textual
Листинг программы
#include <string.h> #include <stdio.h> #include <stdlib.h> void clean_enter(char* str) { if (str[strlen(str) - 1] == '\n') str[strlen(str) - 1] = '\0'; } void strrev(char *word) { char t; size_t len = strlen(word); for (size_t i = 0; i < len / 2; i++) { t = word[i]; word[i] = word[len - 1 - i]; word[len - 1 - i] = t; } } #define SIZE 1024 int main() { char buf[SIZE]; fgets(buf, SIZE, stdin); clean_enter(buf); char *text = (char*) malloc((strlen(buf) + 1) * sizeof(char)); strcpy(text, buf); char *tok = strtok(text, " "); strrev(tok); strcpy(buf, tok); strcat(buf, " "); while ((tok = strtok(NULL, " ")) != NULL) { strrev(tok); strcat(buf, tok); strcat(buf, " "); } puts(buf); free(text); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д