Используя функции из библиотеки 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;
}