Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ksheminskiy
2 / 2 / 0
Регистрация: 03.03.2011
Сообщений: 31
#1

Преобразование строки текста - C++

24.03.2011, 12:08. Просмотров 617. Ответов 5
Метки нет (Все метки)

Добрый день всем. Возникла проблема со строками.

Напишите код на С, пожалуйста.

Задание:
Переобразовать строку текста, записав все обозначения едениц площади словами (кв.м - квадратный метр, га - гектар). Еденицы площади: кв.мм, кв.см, кв.дм, кв.м, кв.км, га.

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2011, 12:08     Преобразование строки текста
Посмотрите здесь:

C++ Строки (преобразование текста)
Преобразование из строки в число C++
Преобразование строки C++
преобразование строки целое C++
Преобразование строки в строку? C++
C++ Преобразование строки в переменные
C++ Преобразование строки в число
Преобразование строки C++
C++ Преобразование текста в речь
C++ Преобразование строки в число
Преобразование строки в формулу на с++ C++
C++ Преобразование строки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dexter
285 / 145 / 16
Регистрация: 13.10.2009
Сообщений: 164
24.03.2011, 12:44     Преобразование строки текста #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
#include <stdio.h>
#include <conio.h>
#include <string>
char* str_replace(char* search, char* replace, char* resource)
{
    size_t search_len = strlen(search);
    size_t replace_len = strlen(replace);
 
    char* pointer = strstr(resource, search);
 
    while (pointer != NULL)
    {
        size_t i;
        size_t pointer_len = strlen(pointer);
        size_t resource_len = strlen(resource);
        char* new_text = (char*)calloc((resource_len - search_len + replace_len), sizeof(char));
        strncpy(new_text, resource, resource_len - pointer_len);
        strcat(new_text, replace);
        strcat(new_text, pointer + search_len);
        resource = new_text;
        pointer = strstr(resource, search);
    }
 
    return resource;
}
int main()
{
    char* a="1234кв.м 2342га";
    char* b="кв.м";
    char* c="квадратных метров";
    a=str_replace(b,c,a);
    b="га";
    c="гектар";
    a=str_replace(b,c,a);
    printf("%s",a);
    getch();
    return 0;
}
Смысл думаю понятен..
Функция не моя, взял с первой ссылки "замена подстроки в строке"
ksheminskiy
2 / 2 / 0
Регистрация: 03.03.2011
Сообщений: 31
24.03.2011, 12:50  [ТС]     Преобразование строки текста #3
Оно должно работать так: я ввожу с клавиатуры "га", а программа выдает "гектар", ввожу "кв.м" - она мне "квадратный метр". И так для каждой единицы площади.
ksheminskiy
2 / 2 / 0
Регистрация: 03.03.2011
Сообщений: 31
12.05.2011, 11:05  [ТС]     Преобразование строки текста #4
Есть ещё у кого-то соображения по этой теме?
Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
12.05.2011, 11:38     Преобразование строки текста #5
я бы хранил все в двумерном массиве, состоящий из двух строк, где первая строка будет отвечать за аббревиатуру, а вторая - за полное название единицы измерения...
Или же хранить данные строками в файле, где первое слово - абб., а второе - полное название...
ksheminskiy
2 / 2 / 0
Регистрация: 03.03.2011
Сообщений: 31
12.05.2011, 12:01  [ТС]     Преобразование строки текста #6
Я сделал вот так. В принципе это то же что Dexter написал, но немного я его переделал...
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
// Project 07.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <locale.h>
#include "stdlib.h"
char* str_replace(char* search, char* replace, char* resource)
{
        size_t search_len = strlen(search);
        size_t replace_len = strlen(replace);
 
        char* pointer = strstr(resource, search);
 
        while (pointer != NULL)
        {
                size_t i;
                size_t pointer_len = strlen(pointer);
                size_t resource_len = strlen(resource);
                char* new_text = (char*)calloc((resource_len - search_len + replace_len), sizeof(char));
                strncpy(new_text, resource, resource_len - pointer_len);
                strcat(new_text, replace);
                strcat(new_text, pointer + search_len);
                resource = new_text;
                pointer = strstr(resource, search);
        }
 
        return resource;
}
int main()
{
    setlocale(LC_ALL,"Rus");
        char* a="кв.м";
        char* b="кв.м";
        char* c="квадратный метр";
        a=str_replace(b,c,a);
        char* k="га";
        char* l="га";
        char* m="гектар";
        k=str_replace(l,m,k);
        printf("%s\n",a);
        printf("%s\n",k);
        getch();
        return 0;
      
}
Yandex
Объявления
12.05.2011, 12:01     Преобразование строки текста
Ответ Создать тему
Опции темы

Текущее время: 01:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru