C/C++

НАПИШИТЕ ПОЖАЛУЙСТА ПРОГРАММУ НА СИ

Введите строку. Преобразуйте строку таким образом, чтобы после каждой цифры стояли три символа «!!!». Выведите преобразованную строку на экран.



строку на экран.
Kyandyk Nurmagan
Kyandyk Nurmagan
113
Код под Visual Studio
 #include  
#include
#include
#include
#define BUFFER 0x400
void insert_after_digits(char* dest, const char* src) {
char tmp[BUFFER] = { 0 };
size_t i = 0;
size_t j = 0;
size_t length = strlen(src);
while (dest[i]) {
tmp[j] = dest[i];
tmp[++j] = 0;
if (isdigit(dest[i])) {
strcat_s(tmp, BUFFER, src);
j += length;
tmp[j] = 0;
}
++i;
}
strcpy_s(dest, BUFFER, tmp);
}
int main(void) {
char line[BUFFER];
const char* src = "!!!";
printf(">>> ");
gets_s(line, BUFFER);
insert_after_digits(line, src);
printf("
$$
$$$ $$$
55 144
Лучший ответ
 #include  
#include

int main()
{
const int first = 1000;
const int second = first * 4;
char s[second],tmp[second];
int i,j;

fgets(s,first,stdin);

for(i = 0, j = 0; s[i]; i++)
{
if(isdigit(s[i]))
{
tmp[j++] = s[i];
for(int k = 0; k < 3; k++, j++)
tmp[j] = '!';
tmp[j] = '\0';
}
else
{
tmp[j++] = s[i];
}
}
tmp[j] = '\0';

for(i = 0; i < j; i++)
s[i] = tmp[i];
s[i] = '\0';

printf("%s",s);

return 0;
}
Алексей Ефремов Ты где пропал? у меня новый вопрос
 #include  
#include
#include

#define BUFFER_SIZE 512

int main()
{
int i;
char buffer[BUFFER_SIZE];

if (fgets(buffer, BUFFER_SIZE, stdin)) {
for (i = 0; i < strlen(buffer); i++) {
putchar(buffer[i]);

if (isdigit(buffer[i]))
printf("!!!");
}
}

return 0;
}

// one 2 three 4 5
// one 2!!! three 4!!! 5!!!