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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2012, 17:51   #1
Daelan
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 10
По умолчанию Поиск неповторяющихся символов

Суть задачи проста: дана исходная строка, нужно вывести символы, встречающиеся только один раз. Моя реализация к сожалению не выводит ничего Подскажите, что не так?

Код:
#include <iostream>
using namespace std;
int main()
{
	char stroka[]="I want to buy new iPad";
	int counter;
	for (int i=0;i<strlen(stroka);i++)
	{ 
		counter=0;
		for (int j=0;j<strlen(stroka);j++)
		{
			if (stroka[i]==stroka[j]) counter++;
			if ((counter==1)&&(j==strlen(stroka))) cout<<stroka[j]<<endl;
		}
	}
	return 0;
}
Daelan вне форума Ответить с цитированием
Старый 03.12.2012, 19:51   #2
St.Voland
 
Регистрация: 03.12.2012
Сообщений: 4
По умолчанию

Как я понимаю, два фейла)
Во-первых, зачем выводить j-тый член строки? Опеределенно нужен і-тый))
Во-вторых, когда j равно длине строки - ты в цикл уже на зайдешь, нужно -1 дописать.
St.Voland вне форума Ответить с цитированием
Старый 03.12.2012, 23:26   #3
Nuklon
Форумчанин
 
Аватар для Nuklon
 
Регистрация: 05.04.2012
Сообщений: 134
По умолчанию

Код:
char stroka[]="I want to buy new iPad";

int n = 0;
for(const char* p = stroka; *p; *p++, n = 0) {
     for(const char* t = stroka; *t; *t++) {
          if(*t == *p) {
              if(++n >= 2)
                  break; 
          }
     }
     if(n & 1)
          cout.put(*p);
}
Nuklon вне форума Ответить с цитированием
Старый 03.12.2012, 23:59   #4
-LeV-
Пользователь
 
Регистрация: 05.06.2010
Сообщений: 29
По умолчанию

как странно.. в моем представлении это доолжно выглядеть как-то так
Код:
int main(){
bool codes[256] = {0};
const char* str = "sample string";
int len = strlen(str);
for(int i = 0; i < len; i++){
   int curChr = str[i];
   if(codes[curChr] == false){
      codes[curChr] = true;
      cout << static_cast<char>(curChr) << endl;
   }
}
}
-LeV- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск повторяющихся символов RNR Общие вопросы Delphi 1 25.06.2012 02:43
Перебор неповторяющихся сочетаний David Villa Общие вопросы C/C++ 3 08.05.2012 10:53
Даны два слова. Получить третье слово из неповторяющихся символов, входящих как в первое, так и во второе слова. dlinkz Паскаль, Turbo Pascal, PascalABC.NET 8 01.02.2012 11:09
Поиск символов в тексте ksu25 Паскаль, Turbo Pascal, PascalABC.NET 2 25.09.2009 19:23
поиск unicode символов kixaka Помощь студентам 1 15.06.2008 15:41