kisa88
1

Инвентирование строки

11.12.2009, 21:53. Показов 1351. Ответов 1

Author24 — интернет-сервис помощи студентам
Дана строка,содержащая текст на естественном языке.Напишите функцию,создающую новую строку ,в которой все слова из старой строки следуют в обратном порядке и разделены одним знаком пробела.исходная строка может содержать различные знаки разделители (пробелы,запятые,точки и т.п.).Полный набор знаков-разделителей передается в функцию при ее вызове.Написать на с.
Помогите пожалуста.
Заранее спасибо.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2009, 21:53
Ответы с готовыми решениями:

Инвентирование порядка елементов в массиве
Например дан массив a = {1, 2, 3, 4, 5} как сделать так, что бы элементы в нем располагались в...

Инвентирование битов
Хочу из 101 сделать 010: <?php $x = 101; $x = ~$x; print $x; // Выводит: -102 ?>

Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки
Помогите пожалуйста! 1)Даны три строки. Определить можно ли из символов третьей строки получить...

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и...

1
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
11.12.2009, 22:27 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAXW 1024
 
char *
word_reverse(char *, char *);
 
int
main(void)
{
    char s[4096], *p;
 
    printf("Введите строку: ");
    if(fgets(s, sizeof(s), stdin) == NULL || *s == '\n')
        return 1;
    if(p = strrchr(s, '\n'))
        *p = '\0';
 
    p = word_reverse(s, " ()-:;,.?!");
    printf("Новая строка: %s\n", p);
    free(p);
    return 0;
}
 
/*
 * word_reverse: реверс слов в строке s, разделенных
 * знаками, указанными в параметре delim */
char *
word_reverse(char *s, char *delim)
{
    int i, nw;
    char *buf, *p;
    char *words[MAXW];
 
    /* выделение слов в строке */
    buf = strdup(s);
    for(i = 0, p = buf; i < MAXW &&
                    (p = strtok(p, delim)); i++, p = NULL)
        words[i] = strdup(p);
    
    nw = i;
    *buf = '\0';
    /* запись слов в результирующую строку в обратном порядке */
    for(i = nw - 1; i >= 0; i--) {
        strcat(buf, words[i]);
        i > 0 ? strcat(buf, " ") : 0;
    }
    
    /* освобождение памяти из-под слов */
    for(i = 0; i < nw; i++)
        free(words[i]);
    return buf;
}
1
11.12.2009, 22:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2009, 22:27
Помогаю со студенческими работами здесь

Слить две строки, вставив символы одной строки между символами другой строки
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой...

Сравнить строки, первый несовпадающий элемент строки-приемника записать в регистр AL, строки-источника - в DL
Помогите написать программу на ассемблерене совсем еще разобрался с этим задание: Ввести с...

Определить длину строки. Если длина строки >6, удалить часть строки в { } скобках.
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши &quot;Ввод&quot;....

Строки. Определить длину введенной строки, если длина кратна 4, то первая часть строки меняется местами со второй
Ввести с клавиатуры строку символов.признак окончания ввода строки-нажатие клавиши ввод.Программа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru