• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Trójznaki C++

Object Storage Arubacloud
0 głosów
674 wizyt
pytanie zadane 25 czerwca 2017 w SPOJ przez BinaryMan Stary wyjadacz (12,620 p.)

Witam !

Można w jakiś sposób wyłączyć obsługę trójznaków w Visual Studio. Zmagam się obecnie z tym zdanie na SPOJ:
http://pl.spoj.com/problems/WI_TRIGR/

I napisałem taki kod:
 

#include <iostream>
#include <string>
#include <regex>
#include <cstdio>
#include <cstring>

std::string text;
using std::string;

string do_replace(string const & in, string const & from, string const & to)
{
	return std::regex_replace(in, std::regex(from), to);
}

int main()
{
		getline(std::cin,text);

		std::cout << do_replace(text, "\\??'", "^") << std::endl;

	system("pause");


	return 0;
}

Na razie chciałbym aby zamienił poprawnie jeden trójznak, jednak gdy wpiszę na wejście ??' to na wyjściu otrzymuję ?^ 

1 odpowiedź

+1 głos
odpowiedź 25 czerwca 2017 przez adrian17 Ekspert (344,860 p.)
wybrane 26 czerwca 2017 przez BinaryMan
 
Najlepsza

Można w jakiś sposób wyłączyć obsługę trójznaków w Visual Studio

VS domyślnie nie ma włączonej podmiany trójznaków (C++17 kompletnie wyrzuca ją ze standardu).

Chodzi raczej o to, że używasz regexów, w których `?` ma specjalne znaczenie.

komentarz 25 czerwca 2017 przez BinaryMan Stary wyjadacz (12,620 p.)

Okay, dziękuję. A można w jakiś sposób zrobić abym mógł używać '?' tak jak to jest w zadaniu ze SPOJ. Nie ukrywam że właśnie regex to pierwsze co mi przyszło do głowy gdy zaczynałem wczoraj to zadnie smiley

komentarz 25 czerwca 2017 przez adrian17 Ekspert (344,860 p.)
też je trzeba wyescape'ować przez \.
komentarz 25 czerwca 2017 przez BinaryMan Stary wyjadacz (12,620 p.)
Tylko że to nie działa tak jak powinno. Kompilowałeś mój kod ?
komentarz 25 czerwca 2017 przez BinaryMan Stary wyjadacz (12,620 p.)
		replace(text.begin(), text.end(), '\?', 'a');
		replace(text.begin(), text.end(), 'o', 'b');

Mogę dzięki tej funkcji jakoś zamienić cały wyraz, a nie tylko pojedyncze znaki ? 

komentarz 25 czerwca 2017 przez adrian17 Ekspert (344,860 p.)

nie.

Tylko że to nie działa tak jak powinno

Mi zadziałało. Pokaż co robisz...

komentarz 25 czerwca 2017 przez BinaryMan Stary wyjadacz (12,620 p.)

Okay działa:
 



		std::cout << do_replace(text, "\\?\\?'", "\^") << std::endl;

Jak tak jest to jest dobrze 

komentarz 25 czerwca 2017 przez BinaryMan Stary wyjadacz (12,620 p.)
można jakoś zapisać ten ciąg znaków po zmianie ?
komentarz 25 czerwca 2017 przez adrian17 Ekspert (344,860 p.)
zapisać? po prostu wynik do_replace wrzuć do zmiennej?
komentarz 26 czerwca 2017 przez BinaryMan Stary wyjadacz (12,620 p.)

Dzięki, działa smiley

Podobne pytania

0 głosów
2 odpowiedzi 328 wizyt
pytanie zadane 29 października 2016 w C i C++ przez Patryk Piecuch Nowicjusz (150 p.)
0 głosów
1 odpowiedź 175 wizyt
pytanie zadane 3 maja 2016 w Java przez DiZZie Gaduła (3,170 p.)
0 głosów
0 odpowiedzi 342 wizyt
pytanie zadane 3 lutego 2023 w SPOJ przez Pan_Blazej Nowicjusz (180 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...