Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2015, 00:09   #1
1mal
Новичок
Джуниор
 
Регистрация: 22.05.2015
Сообщений: 1
По умолчанию удалить из строки символов цифры, делящиеся на 3

может кто поможет с задачей средствами языка си:
Ввести строку символов, если ее длина кратна 3, удалить все цифры, делящиеся на 3.
код написал, но видимо криво. результат во многих случаях выдает не тот. решить смог только в случае исходной строки из цифр. но нужно в случае разных символов. например исходная строка hk3576 и на выходе должно получиться hk57
Код:
Код:
#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<locale.h>
#include<string.h>
#include <stdlib.h>
#include<ctype.h>
void main()
{
 setlocale(LC_CTYPE,"Russian");
 system("cls");fflush(stdin);
 char *x,*c,ch;
 int n,i,*d,k=0,l=0;
 printf(" Введите максимальное количество символов в строке: n=");  
 scanf("%d", &n);
 x=new char [n+1];
 c=new char [100];
 if (x==NULL)
 {
   puts("Предел размерности!!");
   exit(0);
 }
 scanf("%s",x);
 printf("%s\n",x);

 if ((strlen(x))%3==0)          
{
  for(int i=0;i<strlen(x);i++)
  { 
   if (isdigit(x[i]))	
     {
      ch=*(x+i);
      k++;
     }

   if(atoi(&ch)%3!=0)
      c[l++]=x[i];
  }
  c[l]='\0';
  printf("%s",c);		       	 
}	 		 
 delete []x;
 getch();
}

Последний раз редактировалось 1mal; 23.05.2015 в 00:14.
1mal вне форума Ответить с цитированием
Старый 15.06.2015, 18:20   #2
Иван Перов
Новичок
Джуниор
 
Регистрация: 15.06.2015
Сообщений: 12
По умолчанию

Код:
#include<iostream>
#include<string>
string a;
using namespace std;
int main() {
getline(cin,a);
for(int i=0; i<a.length(); i++) 
      i++;
if(i%3==0) {
for(int j=0; j<a.length();j++) {
if(a[j]<='9' && a[j]>='0' && a[j]%3==0) a[j]=0;
}
cout<<a;
return 0;
}
только я здесь обнуляю

до удаления символа надеюсь ты сам додумуешься

Последний раз редактировалось Stilet; 15.06.2015 в 18:32.
Иван Перов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки. Преобразовать строку: оставить слова, содержащие буквы и цифры, остальные удалить Ленка ленка Паскаль, Turbo Pascal, PascalABC.NET 1 23.04.2012 11:51
Из строки удалить все цифры. Shnurik_sh Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.11.2010 01:17
Дана строка символов. Удалить из исходной строки все цифры. Striker14 Помощь студентам 4 26.02.2009 15:50
Дана строка символов. Задача: удалить из строки все цифры. Striker14 Помощь студентам 1 25.02.2009 20:23