Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
stydeht
0 / 0 / 0
Регистрация: 26.05.2009
Сообщений: 52
1

Разбить введенную строку на слова и выделить под каждое слово отдельный массив

20.10.2010, 16:18. Просмотров 1965. Ответов 1
Метки нет (Все метки)

Ребята помогите плиз! Задали задание, а сделать не могу(

1) Написать ф-ию, которая определяет является ли строка палиндромом
2) Заменить в строке все указанные буквы на тире (или звездочки) и вывести на экран кол-во произведенных замен
3) Разбить введенную строку на слова и выделить под каждое слово отдельный массив

заранее очень признателен.
З.Ы. (если не сложно можете написать на чистом си?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2010, 16:18
Ответы с готовыми решениями:

Разбить введенную строку на отдельные слова, выделив под каждое свой массив
Тема: многомерные динамические массивы 1. Разбить введенную строку на отдельные слова, выделив под...

Разбить строку на слова, определить число ли каждое слово или символьная строка
Всем привет! Видел, что подобные темы уже есть, например под авторством SineBot, но все таки у...

Разбить введенную строку на слова
Да, я знаю, что тема не нова и много раз поднималась на этом форуме.=-O Но не могли бы вы...

Массив: каждое слово необходимо поместить в отдельный массив, но по итогу один мусор. Почему?
#include "stdafx.h" #include<iostream> #include<conio.h> using namespace std; int main() {...

Разбить строку на слова и заменить каждое на соответствующее ему число
Добрый день, помогите пожалуйста реализовать одну программку. У меня есть несколько слов и каждому...

1
easybudda
Модератор
Эксперт CЭксперт С++
10107 / 6016 / 1507
Регистрация: 25.07.2009
Сообщений: 11,404
20.10.2010, 17:03 2
Цитата Сообщение от stydeht Посмотреть сообщение
если не сложно можете написать на чистом си?
да написать-то не сложно
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
1) Написать ф-ию, которая определяет является ли строка палиндромом
2) Заменить в строке все указанные буквы на тире (или звездочки) и вывести на экран кол-во произведенных замен
3) Разбить введенную строку на слова и выделить под каждое слово отдельный массив
*/
 
#include <stdio.h>
#include <string.h>
 
int is_palindrom(const char * str){
    const char * head, * tail;
    for ( head = str, tail = str + strlen(str) - 1; head < tail; ++head, --tail )
        if ( *head != *tail )
            return 0;
    return 1;
}
 
int split(const char * str, char *** words_array, int * size, const char * delim){
    char * buf, * wrd;
    if ( ( buf = strdup(str) ) == NULL )
        return -1;
    *words_array = NULL;
    *size = 0;
    for ( wrd = strtok(buf, delim); wrd; wrd = strtok(NULL, delim) ){
        if ( ( *words_array = (char**)realloc(*words_array, sizeof(char*) * (*size + 1)) ) == NULL ){
            free(buf);
            return -1;
        }
        if ( ( (*words_array)[*size] = strdup(wrd) ) == NULL ){
            free(buf);
            return -1;
        }
        *size += 1;
    }
    free(buf);
    return 0;
}
 
int replace(char * str, char from, char to){
    char * found;
    int cnt;
    for ( cnt = 0, found = strchr(str, from); found; ++cnt, found = strchr(found + 1, from) )
        *found = to;
    return cnt;
}
 
#define DELIM " \t\n"
 
int main(void){
    char buf[BUFSIZ], ** words, chFrom, chTo;
    int size, i;
    
    printf("String: ");
    scanf("%[^\n]%*c", buf);
    printf("Is%s palindrom\n", is_palindrom(buf) ? "" : "'nt");
    printf("Character to change: ");
    scanf("%c%*c", &chFrom);
    printf("New character: ");
    scanf("%c%*c", &chTo);
    printf("%d changes\n", replace(buf, chFrom, chTo));
    printf("Updated string: %s\n", buf);
    
    if ( split(buf, &words, &size, DELIM) ){
        fprintf(stderr, "Can't split string by words!\n");
        return 1;
    }
    printf("By words:\n");
    for ( i = 0; i < size; ++i )
        printf("%s\n", words[i]);
    
    for ( i = 0; i < size; ++i )
        free(words[i]);
    free(words);
    
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2010, 17:03

Разбить на слоги каждое четное слово в строке, а каждое нечетное записать в обратном порядке
Нужно разбить на слога каждое слово на парной позиции в строчке,а каждое на непарной позиции...

Распечатать введенную строку, удалив из неё слова с нечетными номерами и добавив перевернутое слово к слову с четными номерами.
Распечатать введенную строку, удалив из неё слова с нечетными номерами и добавив перевернутое слово...

Строка: Строку разбить на слова и слова запихнуть в массив char.
Вобщем пока нужно: 1) строку разбить на слова и слова запихнуть в масив char. но у меня почему то...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru