Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для Luna17
3 / 2 / 1
Регистрация: 09.03.2010
Сообщений: 95

Символьная строка

11.03.2010, 23:39. Показов 2220. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выполнить удаление всех цифр из символьной строки “1ab23cef05” (P S и получить должны “abcef”)

народ можете подсказать с помощью чего можно убрать цифры, ну или предложить решения, а то уже всю голову сломала, на этот счет дальше ввода строки не продвинулась
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2010, 23:39
Ответы с готовыми решениями:

Символьная строка
Помогите решить задачку! очень нужно! 2. Ввести символьную строку. Посчитать количество слов в предложении. Если не одно слово, то...

Символьная Строка
Всем доброго дня. У меня тут дана программа связанная с символами и у меня первый вопрос где ее лучше писать в турбо паскале или в ...

Символьная строка
Подскажите алгоритм который будет вычислять количество слов больше 4 элементов в символьной строке

4
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
12.03.2010, 00:23
создаешь массив под вторую строку, читаешь из первой символы, если не цифра - записываешь во второй массив
0
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
12.03.2010, 03:33
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int i=0; i<strlen(str); i++)
{
   if (str[i]>='0' && str[i]<='9')
   {
      for (int j=i; j<strlen(str); j++)
      {
         tmp=str[j];
         str[j]=str[j+1];
         str[j+1]=tmp;
      }
   }
}
1
 Аватар для Luna17
3 / 2 / 1
Регистрация: 09.03.2010
Сообщений: 95
12.03.2010, 08:37  [ТС]
спасибо

Добавлено через 29 минут
У ми прога полученная не работает, тока задает ввести данные и виснит, помогите найти ошибку
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
// ап.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "locale.h"
#include "string.h"
#include "stdio.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "Russian");
    int i, j; 
    const int k=20;
    char mas[k], n;
    printf ("введите строку:\n");
    gets (mas);
    for (i=0; i<strlen(mas); i++)
    {
        if (mas[i]>='0'&&mas[i]<='9');
        { 
            for (j=i; j<strlen(mas); j++)
            { 
                n=mas[j];
                mas[j]=mas[j+1];
                mas[j+1]=n;
            }
        }
    }
printf ("массив без чисел %s\n", mas[j]);
 
return 0;
}

Code
1
2
3
4
5
6
7
8
9
10
11
12
1>Компиляция...
1>ап.cpp
1>c:\users\вероника\documents\visual studio 2008\projects\ап\ап\ап.cpp(16) : warning C4996: 'gets': This function or variable may be unsafe. Consider using gets_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(279): см. объявление 'gets'
1>c:\users\вероника\documents\visual studio 2008\projects\ап\ап\ап.cpp(17) : warning C4018: <: несоответствие типов со знаком и без знака
1>c:\users\вероника\documents\visual studio 2008\projects\ап\ап\ап.cpp(20) : warning C4390: ";": обнаружен пустой контролируемый оператор; это правильно?
1>c:\users\вероника\documents\visual studio 2008\projects\ап\ап\ап.cpp(21) : warning C4018: <: несоответствие типов со знаком и без знака
1>Компоновка...
1>Внедрение манифеста...
1>Журнал построения был сохранен в "file://c:\Users\Вероника\Documents\Visual Studio 2008\Projects\ап\ап\Debug\BuildLog.htm"
1>ап - ошибок 0, предупреждений 4
========== Построение: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
12.03.2010, 11:49
Вот мой вариант решения на С при помощи непосредственного сдвига внутри блока памяти..
На мой взгляд таким образом решать задачи подобного рода наиболее целесообразно, т.к. нет необходимости в дополнительном массиве. Думаю неплохой вариант если исходная строка очень большой длины
Всё детально прокоментил, думаю в дальнейших пояснениях нет необходимости...
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
/*
Выполнить удаление всех цифр из символьной строки “1ab23cef05” 
(P S и получить должны “abcef”)
*/
#include <windows.h>
#include <stdio.h>
 
//Ввод текстового блока до того 
//как не будет введен символ chEnd
//Возвращаемые функцией значения :
//  char * str - Строка с текстом
//  int   sLen - Число символов в строке
char * enter_string(char * str, char chEnd, int &sLen);
//Выделяем память под наш текстовый блок
char * str = (char *)malloc(sizeof(char));
int sLen = -1;
 
void main()
{
    printf("\tEner input string\r\n");
    //Вводим строку до нажатия Enter
    str = enter_string(str, '\n', sLen);
    for(int i = 0,j; i < sLen; i++)
    {
        //Дошли до цифры
        if(isdigit(str[i]))
        {
            //В любом случае из строки цифру выбросим
            //поэтому длинна уменьшиться на 1 символ
            sLen--;
            //Возможны 2 случая
            //рассматриваемый символ - не последний
            if(i < sLen)
                //Копируем все символы с позиции i + 1
                //На позицию i
                memmove(&str[i],&str[i + 1],sLen - (i + 1));
            else
                //В случае последнего символа, просто обрежим строку
                str[i] = '\0';
            //Рассматривать строку мы должны с символа str[i + 1]
            //Он теперь на i - позиции
            //поэтому делаем откат на позицию i - 1
            //чтобы на новой итерации попасть на i - позицию
            i--;
            //Обрезаем строчку под её длину, 
            //иначе будет выводиться мусор вконце
            str[sLen] = '\0';
        }
    }
    printf("Output string : %s\r\n",str);
    //Чтобы ввести новую строку необходимо ввести 1-цу
    printf("Press NUM1 to enter new string\r\n");
    str = enter_string(str, '\n', sLen);
    if(str[0] == '1')
        main();
}
 
char * enter_string(char * str, char chEnd, int &sLen)
{
    sLen = 0;
    while((str[sLen] = getchar()) != chEnd)
    {
        sLen++;
        str = (char *)realloc(str,(1 + sLen)*sizeof(char));
    }
    str[sLen] = '\0';
    return str;
}
Изображения
 
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2010, 11:49
Помогаю со студенческими работами здесь

символьная строка
Задано символьная строка, который является двоичным кодом целого без знакового числа (состоит из 0 и 1). Вычислить и вывести на экран...

символьная строка
Дана символьная строка. Определить, сколько раз входит в нее группа букв: abc срочно надо! помогите пожалуйста!

символьная строка ...
Помогите решить задачу : Дана символьная строка, которая вводится в программу с клавиатуры. Необходимо заменить все цифры, встречающиеся...

символьная строка
Дана символьная строка. Подсчитать в ней количество знаков препинания (-,;:! *?)

Дана символьная строка
Дана символьная строка. Определить сколько раз входит в нее группа букв abc.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru