Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 18.10.2013
Сообщений: 28
1

Вставить 3 звездочки после каждой цифры в строке

08.04.2014, 13:54. Показов 2549. Ответов 3
Метки нет (Все метки)

Условие задачи: вводить строки, завершение ввода - строка end. Затем в строках добавить *** после каждой цифры и в конце добавить текст "stars were added". Исходные и переделанные строки вывести таблицей.
Я набросал такой код, но тут даже не работает остановка ввода после end. Массив str_chg - для обработанных строк.

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 <locale.h>
#include <string.h>
 
#define max_message 100
#define max_length 100
 
int read_line (char str[], int n);
 
int main()
{
    char str[max_message][max_length+1], str_chg[max_message][max_length+1];
    char *result;
    int i=0, j, k=0, num_string=0;
    setlocale(LC_CTYPE, "rus");
    printf("Вводите строки (не более 100 символов, end - завершение ввода)\n");
    setlocale(LC_ALL, ".866");
    for (;;){
        do
        {
            gets (str[i]);
            i++;
            result=strstr(str[i], "end");
        }
        while (result==NULL);
    }
    for (j=0; j<i; j++)
        printf("%-33s\n", str[j]);
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2014, 13:54
Ответы с готовыми решениями:

В заданной строке после каждой буквы Ch вставить строку Str1
В заданной строке после каждой буквы Ch вставить строку Str1

Во введенной пользователем строке добавить символ «#» после каждой цифры (0-9)
Не получается, помогите( #include &lt;stdlib.h&gt; int main() {) char str; printf (&quot;Enter...

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

Строки: перед каждой цифрой в строке вставить символ «N»
Перед каждой цифрой в строке вставить символ «N». Можете решить? Меня всегда бесят эти строки

3
Чорумфанин
346 / 346 / 320
Регистрация: 06.03.2014
Сообщений: 899
08.04.2014, 14:08 2
Sauber,
убираем цикл
C
1
for (;;){}
тут считывается строка, потом увеличивается индекс и с уже увеличеным индексом идет проверка
Цитата Сообщение от Sauber Посмотреть сообщение
C
1
do { gets (str[i]); i++; result=strstr(str[i], "end"); }
увеличивайте i после проверки strstr
1
Эксперт Java
3851 / 2471 / 445
Регистрация: 28.04.2012
Сообщений: 8,132
08.04.2014, 14:11 3
Цитата Сообщение от Sauber Посмотреть сообщение
C
1
2
3
gets (str[i]);
i++;
result=strstr(str[i], "end");
Подумай над этими тремя строчками.
1
...
1800 / 1265 / 934
Регистрация: 12.02.2013
Сообщений: 2,058
08.04.2014, 14:36 4
Лучший ответ Сообщение было отмечено Sauber как решение

Решение

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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
char* func(char text[]) {
    char* p = text;
    unsigned cnt = 0;
 
    for (; *p; ++p) {
        if (isdigit(*p)) {
            cnt++;
        }
    }
    strcpy(p + (cnt * 3), "stars were added");
 
    for (--p; cnt; --p) {
        if (isdigit(*p)) {
            strncpy(p + (--cnt * 3) + 1, "***", 3);
        }
 
        *(p + (cnt * 3)) = *p;
    }
 
    return text;
}
 
int main() {
    char text[256] = "1+2=3";
 
    printf("%s\n", text);
    printf("%s\n", func(text));
 
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2014, 14:36

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

Удалить все цифры из файла, а после каждой буквы поставить следующую по алфавиту
Народ помогите! Как можно иначе написать такую же программу? Если нужны пояснения к процедурам,...

После каждой буквы предпоследнего слова вставить символ '*'. Лишние символы (с 81-ого) отбросить
После каждой буквы предпоследнего слова вставить символ '*'. Лишние символы (с 81-ого) отбросить....

В строке asd34hg67gf вставить пробел перед и после числа
В строке asd34hg67gf вставить пробел перед и после числа - Cи


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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