Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
C++

[ROZWIĄZANE] Sprawdzanie czy zmienna zawiera tekst

C++ c++

  • Zamknięty Temat jest zamknięty
28 odpowiedzi w tym temacie

#1 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 20.12.2011 20:26

Siemka ;P
mam pytanie jak sprawdzić za pomocą if'a czy zmienna zawiera tekst w sobie czyli przykładowo chce zrobić takie coś , że wywali błąd jeśli ktoś wpisze naprzykład litere 'a'
if( ( c >= 'a' && c <= 'z' ) )
Dałem takie coś jednak nie działa.
Ma ktoś jakiś inny pomysł ? :]
  • +
  • -
  • 0

If you can dream it, you can do it.


#2 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 20.12.2011 21:28

Skorzystaj z tej funkcji:
bool strContains(const string inputStr, const string searchStr)
{
	size_t contains;

	contains = inputStr.find(searchStr);

	if(contains != string::npos)
		return true;
	else
		return false;
}

Jeżeli korzystasz z VC++ to mozesz zrobic to też tak:

using namespace System;

int main()
{
   String^ s1 = "To jest przykład";
   String^ s2 = "jest";
   bool b;
   b = s1->Contains( s2 );
   Console::WriteLine( "Czy w ciągu s1 jest ciąg s2?: {0}", b );
}

  • +
  • -
  • 0

marwit-0.png


#3 speedkill

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 20.12.2011 21:51

Nie można jakoś przekształcić tego ifa ?
if( ( c >= 'a' && c <= 'z' ) )

  • +
  • -
  • 0

If you can dream it, you can do it.


#4 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 20.12.2011 21:58

Ale o jaki typ zmiennej ci chodzi? char/wchar czy string/wstring ?
  • +
  • -
  • 0

marwit-0.png


#5 speedkill

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 20.12.2011 22:13


int c;


  • +
  • -
  • 0

If you can dream it, you can do it.


#6 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 554
Godlike

  • Postów:11 979
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 21.12.2011 00:10

do wczytywania znaku to ty char użyj
  • +
  • -
  • 0

#7 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 21.12.2011 07:51

A gdyby tak użyć stringa i klasy .find ?

http://pl.wikibooks....wiki/C /String

find(...) Znajduje podciąg w ciągu, są też bardziej rozbudowane funkcje tego typu.

MarWit (21.12.2011 09:14):
Zobacz na funkcje którą mu podałem :)

  • +
  • -
  • 0

#8 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 21.12.2011 09:17

No ale w zmiennej typu int nie można przechowywać znaków ( chyba ze jako liczbę a później rzutowanie typów ).
Podaj cały kod programu bądź wytłumacz jak to ma działać.

Mozna to zrobić tak ale po co?
if(c >= (int)'a' && c <= (int)'z')

  • +
  • -
  • 0

marwit-0.png


#9 ExBiT

    Pomocny

  • Użytkownik

Reputacja: 39
Życzliwy

  • Postów:65
  • Imię:Brainf*ck
  • Lokalizacja:Warszawa
Offline

Napisano 21.12.2011 20:35

Nie mogę patrzeć na ten harmider.
Ascii Table - ASCII character codes and html, octal, hex and decimal chart conversion
Do porównania użyjesz decimala('DEC').

PS. Czy na tym forum już nikt nie potrafi dobrze zakodzić? Wszyscy muszą brać gotowce z neta, brawo za ambicje -.-
Marwit, jak podajesz kogoś kod, to nie zapominaj o źródle. Wklejam:
http://www.dreaminco...snippet4411.htm

Użytkownik ExBiT edytował ten post 21.12.2011 21:06

  • +
  • -
  • 0
Projekty na zamówienie w technologii:
- C++,
- Java,
- Pawn.

100% zadowolenia. Kontakt - PW.

#10 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 21.12.2011 21:39

A gdyby tak użyć stringa i klasy .find ?


chyba klasy string i metody find jesli pracujesz na stringach to masz juz predefiniowane funkcje w klasie

btw w int'cie mozna przechowywac znaki :P
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#11 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 554
Godlike

  • Postów:11 979
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 21.12.2011 22:22

Czy na tym forum już nikt nie potrafi dobrze zakodzić? Wszyscy muszą brać gotowce z neta, brawo za ambicje -.-

:giggle:

btw w int'cie mozna przechowywac znaki

nie znaki tylko ich wartość kompilatory są jednak tak inteligentne że potrafią automatycznie dokonywać konwersji int -> char , char -> int
  • +
  • -
  • 0

#12 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 22.12.2011 08:39

A gdyby tak użyć stringa i klasy .find ?


chyba klasy string i metody find jesli pracujesz na stringach to masz juz predefiniowane funkcje w klasie

btw w int'cie mozna przechowywac znaki :P


Sory ze ew. błędy.

Nie mogę patrzeć na ten harmider.
Ascii Table - ASCII character codes and html, octal, hex and decimal chart conversion
Do porównania użyjesz decimala('DEC').

PS. Czy na tym forum już nikt nie potrafi dobrze zakodzić? Wszyscy muszą brać gotowce z neta, brawo za ambicje -.-
Marwit, jak podajesz kogoś kod, to nie zapominaj o źródle. Wklejam:
http://www.dreaminco...snippet4411.htm

Jak chcesz tym sprawdzić, np. czy wyraz Administrator zawiera tekst mini, bo o to chodzi w całym temacie, czytaj 1 post ?
  • +
  • -
  • 0

#13 ExBiT

    Pomocny

  • Użytkownik

Reputacja: 39
Życzliwy

  • Postów:65
  • Imię:Brainf*ck
  • Lokalizacja:Warszawa
Offline

Napisano 22.12.2011 12:51

@UP

Można to zrobić zapisując wyraz w postaci liczby do tablicy i przelatując po indexach. Wystarczy pomyśleć.
  • +
  • -
  • 0
Projekty na zamówienie w technologii:
- C++,
- Java,
- Pawn.

100% zadowolenia. Kontakt - PW.

#14 speedkill

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 30.12.2011 12:51

Dobra, troche odkop , ale zrobiłem tak jak Darek napisał , ale mam problem :/
Moja zmienna to nie int tylko double więc jak zmienie z double a char a potem char na double to nie zachowa liczb po przecinku ;]
ktoś ma jakiś pomysł ?
  • +
  • -
  • 0

If you can dream it, you can do it.


#15 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 30.12.2011 12:56

Pomnóż liczbę double, aby powstała liczba, która ma po porzecinku 0. Kiedy będziesz chciał odczytać to podziel liczbę, przez tyle ile pomnożyłeś.
  • +
  • -
  • 0

#16 speedkill

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 30.12.2011 13:47

@Fili możesz dać przykład ?
Dobra zapytam inaczej może w jednym
std::cin>> lub cin>> jak kto woli
wpisać dwie zmienne ?
tzn.cin>>R1,R2;
Zadziała tak ?
Coś czuje , że nie ale wole się upewnić :)
  • +
  • -
  • 0

If you can dream it, you can do it.


#17 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 30.12.2011 14:00

Masz np 2.72, to mnożysz *100 i masz 272, zamieniasz na znak.
Kiedy chcesz odczytać to bierzesz char na double i dzielisz 272 / 100 i wychodzi ci 2.72.
  • +
  • -
  • 0

#18 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 30.12.2011 14:32

mozesz zrobic tak


cin>>x>>y;

  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#19 speedkill

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 30.12.2011 14:38

nie zadziała tak :
cin>>R2>>R;
mi chodziło , oto że podczas jednego kliknięcia enter wpisują się dwie zmienne do jednego cin'a
a tutaj trzeba nacisnąć dwa razy enter
  • +
  • -
  • 0

If you can dream it, you can do it.


#20 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 30.12.2011 14:41

Na chłopski rozum:

cin>>R2;

R = R2;


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: C++, c++

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych