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

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

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

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

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

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

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

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

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

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

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

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

1
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,231
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