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

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

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

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

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

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

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

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

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

Строки (преобразование текста) - C++
Ввести массив строк текста с неизвестным заранее количеством строк и строку символов разделителей. Признаком ввода последней строки...

Преобразование текста в речь - C++
Здравствуйте. Я делаю вопросно-ответную программу. Вот код: #include <clocale> #include <iostream> #include "sapi.h" using...

Преобразование строки - C++
Преобразовать строку таким образом, чтобы в ее начале были записаны слова, содержащие только цифры, потом слова, содержащие только буквы, а...

Преобразование строки - C++
Здраствуйте, У меня возник вопрос о том как решить мою представленную задачу. Даны несколько строк и их надо преаброзовать по...

Преобразование строки - C++
У меня имеется массив string одномерный в каждом элементе этого массива записана строка. Строка начинается с пробела. ex строки: 378 1 384...

Преобразование чисел из строки - C++
Вот код #include<iostream> #include<cstring> #include<cstdlib> #include<cmath> int main(){ char *p; char c="10...

Преобразование строки в дробь - C++
Выводит только первые 2 цифры после точки. Как сделать, чтобы дробь выводилась полностью? typedef wchar_t Char; typedef char...

Преобразование строки в число - C++
Здравствуйте. Преобразовываю строку в число с помощью функции atoi(), но есть одна проблема: int number; ...

Преобразование строки в массив - C++
Здраствуйте пишу программу.Мне нужно преобразовать строку в массив.Пробовал через цикл. #include <iostream> #include <cstdlib> ...

Преобразование строки в число - C++
А как многоразрядные числа из строки преобразовать? Если я использую string?

Преобразование строки в число? - C++
Написал функцию, которая введенную преобразует в число. Но при выводе пишет, что она хранит не введенное число, а 0. В чем я ошибся? ...

Преобразование строки в double - C++
Собственно есть код: #include <iostream> #include <iomanip> using namespace std; double atof(const char *nPtr) ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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ил
531 / 436 / 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     Преобразование строки текста
Ответ Создать тему
Опции темы

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