Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 24.02.2019
Сообщений: 138

Программа, которая удаляет первые 2 цифры или слова

29.03.2019, 17:55. Показов 1067. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот есть код , который удаляет пробелы , если они есть в начале...

Мне нужно это переделать так , чтобы программа удаляла первые два символа или слова , если это цифры...

НУ тип , если ввести "4 5 привет" - то программа выдаст просто "привет" .. "2 привет" - "Привет" ... " 2 3 4 привет" - "4 привет"
А если в начале цифр нет , то всё остаётся .

Помогите , пожалуйста :c

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
#include <stdio.h> 
#include <conio.h> 
#include "string.h" 
void main() 
{ 
unsigned char sst[80]; // Строка 
unsigned char dst[80]; // Буффер 
int i,j; 
printf("Remove the numeral symbols in the beginning\n"); 
printf("Enter a string:"); 
i=0; 
while ((sst[i] = getch()) != 13 && i < 79) 
{ 
putch(sst[i]); 
i++; 
} 
sst[i] = '\0'; // нулевой символ в конце строки 
i = 0; j = 0; 
// найдем первый символ, отличный от пробела 
while( sst[i] && sst[i] == ' ') 
i++; 
// здесь i - номер первого символа, отличного от пробела, 
// скопируем sst в dst 
while (sst[i]) 
dst[j++] = sst[i++]; 
dst[j] = '\0'; 
printf("\nString without two first numeral:%s\n",dst); 
printf("\n Press enter for finish <Enter> \n"); 
getch(); 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2019, 17:55
Ответы с готовыми решениями:

Программа, которая удаляет элементы из целочисленного массива
Здравствуйте, уважаемые участники форума! Помогите, пожалуйста, написать программу, которая удаляет все элементы, большие 5 из...

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

Программа должна находить в вводимом тексте цифры и вписывать их после слова "цифры"
Добрый день! Написал вот такую программму: #define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

10
85 / 61 / 29
Регистрация: 15.05.2013
Сообщений: 189
29.03.2019, 18:30
Можно, например, так

22 //

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <ctype.h> // isdigit()
 
int ii = i; // сохранить позицию
if (isdigit(sst[i])) {
    // если цифра, пропустить ее и последующие пробелы
    ++i;
    while (sst[i] && sst[i] == ' ') ++i;
    // если снова цифра (вторая), то снова пропуск
    if (isdigit(sst[i])) {
        ++i;
        while (sst[i] && sst[i] == ' ') ++i;
    }
    // иначе откатиться к сохраненной позиции
    else
        i = ii;
}
23 //
0
35 / 28 / 8
Регистрация: 01.03.2019
Сообщений: 135
29.03.2019, 18:50
Если правильно понял.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
 
int main(int argc, char** argv)
{
    char str[] = "1 2 Hello world!";
    char *ptr = str;
 
    while (*ptr >= '0' && *ptr <= '9' || *ptr == ' ')
        ptr++;
 
    printf("%s\n", ptr);
 
    return 0;
}
0
2 / 2 / 0
Регистрация: 24.02.2019
Сообщений: 138
29.03.2019, 18:56  [ТС]
ALast, Мне нужно сделать так , чтоб пользователь вводил текст :C

Я изменил ваш код , почему он не работает :?(

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 #include <locale.h>
 
int main(int argc, char** argv)
{
    setlocale(LC_ALL, "Russian");
    char str[80];
    char *ptr = str;
    printf("Введите текст: ");
    scanf("%с" , &str);
    while (*ptr >= '0' && *ptr <= '9' || *ptr == ' ')
        ptr++;
 
    printf("%s\n", ptr);
 
    return 0;
}
0
35 / 28 / 8
Регистрация: 01.03.2019
Сообщений: 135
29.03.2019, 19:00
Цитата Сообщение от DREDON Посмотреть сообщение
scanf("%с" , &str);
Вы вводите 1 символ, даже не слово.

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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
#define SIZE 128
 
 
int ReadLine(char *str, size_t max)
{
    size_t len = 0;
    for (char c; len < max && (c = getchar()) != '\n'; len++)
        str[len] = c;
    if (len == max)
        len--;
    str[len] = '\0';
    return len;
}
 
int main(int argc, char** argv)
{
    char str[SIZE];
    ReadLine(str, SIZE);
 
    char *ptr = str;
 
    while (*ptr >= '0' && *ptr <= '9' || *ptr == ' ')
        ptr++;
 
    printf("%s\n", ptr);
 
    return 0;
}
0
2 / 2 / 0
Регистрация: 24.02.2019
Сообщений: 138
29.03.2019, 19:01  [ТС]
ALast,
А да ... я ведь принимаю одну переменную((
А как должен выглядеть код так , Чтоб пользователь мог вводить , что угодно :c
0
85 / 61 / 29
Регистрация: 15.05.2013
Сообщений: 189
29.03.2019, 19:11
Этот код пропустит все цифры (и первую, и вторую, и третью, и т.д.) и пробелы
0
2 / 2 / 0
Регистрация: 24.02.2019
Сообщений: 138
29.03.2019, 19:13  [ТС]
shadowmaan, А как должен выглядеть код так , Чтоб пользователь мог вводить , что угодно T_T
0
85 / 61 / 29
Регистрация: 15.05.2013
Сообщений: 189
29.03.2019, 19:17
Я имел ввиду код пропуска цифр

Цитата Сообщение от ALast Посмотреть сообщение
char *ptr = str;
while (*ptr >= '0' && *ptr <= '9' || *ptr == ' ')
* * * * ptr++;
printf("%s\n", ptr);
А чтение, наверное приведенная ReadLine сгодится. Собственно и ваш первоначальные вариант чтения строки выглядит вполне рабочим.
Но лучше библиотечные gets/fgets из stdio.h
0
2 / 2 / 0
Регистрация: 24.02.2019
Сообщений: 138
29.03.2019, 20:20  [ТС]
ALast, Но данный код стирает все введенные цифры в начале (

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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
#define SIZE 128
 
 
int ReadLine(char *str, size_t max)
{
    size_t len = 0;
    for (char c; len < max && (c = getchar()) != '\n'; len++)
        str[len] = c;
    if (len == max)
        len--;
    str[len] = '\0';
    return len;
}
 
int main(int argc, char** argv)
{
    char str[SIZE];
    ReadLine(str, SIZE);
 
    char *ptr = str;
 
    while (*ptr >= '0' && *ptr <= '9' || *ptr == ' ')
        ptr++;
 
    printf("%s\n", ptr);
 
    return 0;
}
Добавлено через 56 минут
ALast, Как сделать так , чтоб он только первые 2 стирал :?c
0
35 / 28 / 8
Регистрация: 01.03.2019
Сообщений: 135
29.03.2019, 21:21
shadowmaan, shadowmaan, ну добавьте вы просто счётчик то...
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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
#define IS_DIGIT(a) ((a <= '9' && a >= '0')) ? 1 : 0
 
#define SIZE 128
 
 
int ReadLine(char *str, size_t max)
{
    size_t len = 0;
    for (char c; len < max && (c = getchar()) != '\n'; len++)
        str[len] = c;
    if (len == max)
        len--;
    str[len] = '\0';
    return len;
}
 
int main(int argc, char** argv)
{
    char str[SIZE];
    ReadLine(str, SIZE);
 
    char *ptr = str;
 
    for (size_t count = 0; count < 2 && IS_DIGIT(*ptr) || *ptr == ' '; ptr++)
        if (IS_DIGIT(*ptr))
            count++;
 
    printf("%s\n", ptr);
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.03.2019, 21:21
Помогаю со студенческими работами здесь

Программа которая находит первые 500 простых чисел и записывает их в файл
На языке СИ.

Программа, которая вводит текст, удаляет в нем все слова заданной длины, а оставшиеся слова выводит в алфавитн
Разработать программу, которая вводит текст, удаляет в нем все слова заданной длины, а оставшиеся слова выводит в алфавитном порядке.

программа,содержащая процедуру,которая удаляет из матрицы указанную строку или столбец
программа,содержащая процедуру,которая удаляет из матрицы указанную строку или столбец

Программа которая проверяет, были введены цифры или буквы
Нужна помощь в написании программы в Matlab. Которая будет проверять, были введены цифры или буквы. Если буквы, то тогда ошибка и...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru