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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы