|
You last visited: Today at 02:59
Advertisement
stringmethode
Discussion on stringmethode within the General Coding forum part of the Coders Den category.
09/24/2008, 13:52
|
#1
|
elite*gold: 0
Join Date: Sep 2008
Posts: 13
Received Thanks: 0
|
stringmethode
Hallo,
ich suche eine Methode um herauszufinden ob ein string groß bzw. kleinschreibung enthält.
kennt ihr da eine?
bluescreen²
|
|
|
09/24/2008, 14:55
|
#2
|
elite*gold: 0
Join Date: Aug 2005
Posts: 896
Received Thanks: 334
|
Da du jetzt nicht direkt gesagt hast um welche Programmiersprache es sich handelt ein generischer Vorschlag: Falls die verwendete Sprache es ermöglicht einen String in lowercase umzuwandeln könntest du das machen und dann vorher und nachher vergleichen. Wenn sie gleich sind war zuvor kein Großbuchstabe vorhanden
|
|
|
09/24/2008, 15:30
|
#3
|
elite*gold: 0
Join Date: Aug 2005
Posts: 1,245
Received Thanks: 60
|
Sind in den meisten Programmiersprachen nicht entsprechende *RegEx dabei,
mit denen man etwas derartiges realisieren kann?
Ansonsten könnte man wohl auch ein pattern matching verfahren benutzen,
auf Basis der ASCII-Tabelle...
*RegEx = Regular Expressions
|
|
|
09/24/2008, 17:46
|
#4
|
elite*gold: 0
Join Date: Sep 2008
Posts: 13
Received Thanks: 0
|
lol,
ich idiot... ihr habt recht; ich hätte erwähnen sollen, dass es sich um c++ handelt..
naja. Ich kann auch eine sehr komplexe schleife machen die den string zeichenweise abspeichers und jedes Zeichen einzeln überprüft. Ich wollte nur wissen ob einer von euch so ne art "pussymethode" kennt, womit man sich leichter tut.
bluescreen²
|
|
|
09/24/2008, 21:41
|
#5
|
elite*gold: 37
Join Date: Apr 2004
Posts: 2,154
Received Thanks: 250
|
Quote:
Originally Posted by bluescreen²
lol,
ich idiot... ihr habt recht; ich hätte erwähnen sollen, dass es sich um c++ handelt..
naja. Ich kann auch eine sehr komplexe schleife machen die den string zeichenweise abspeichers und jedes Zeichen einzeln überprüft. Ich wollte nur wissen ob einer von euch so ne art "pussymethode" kennt, womit man sich leichter tut.
bluescreen²
|
ansi c:
bool ContainsUpper(char* str)
{
for(int i = 0 ; str[i] != 0;i++) if (str[i] <=90) return true;
return false;
}
cpp.net:
bool ContainsUpper(string^ str)//oder so ähnlich :S
{
for(int i = 0 ; i<str.Length ;i++) if (str[i] <=90) return true;
return false;
}
achja, für containslower einfach den namen der funktion ändern und anstatt "<=90" ">90" schreiben
ums zu verstehn einfach die ascii tabelle ankucken, wenns nich tut - einfach meckern ^^
/edit, ansonsten gibts da sicherlich auch schon funktionen für, ich kenn sie aber nich auswendig :<
|
|
|
09/25/2008, 08:12
|
#6
|
elite*gold: 0
Join Date: Aug 2005
Posts: 896
Received Thanks: 334
|
Quote:
Originally Posted by x]vIrus[x
ansi c:
bool ContainsUpper(char* str)
{
for(int i = 0 ; str[i] != 0;i++) if (str[i] <=90) return true;
return false;
}
cpp.net:
bool ContainsUpper(string^ str)//oder so ähnlich :S
{
for(int i = 0 ; i<str.Length ;i++) if (str[i] <=90) return true;
return false;
}
achja, für containslower einfach den namen der funktion ändern und anstatt "<=90" ">90" schreiben
ums zu verstehn einfach die ascii tabelle ankucken, wenns nich tut - einfach meckern ^^
/edit, ansonsten gibts da sicherlich auch schon funktionen für, ich kenn sie aber nich auswendig :<
|
So was habe ich jetzt absichtlich nicht gebracht, weil ich nicht sicher war, ob es ein Ascii oder Unicode String ist
|
|
|
09/25/2008, 09:41
|
#7
|
elite*gold: 4
Join Date: Aug 2008
Posts: 6,783
Received Thanks: 4,992
|
if its unicode you would just have to edit the for-call to i+2 :P
haha mr.rattlz failed ;9
|
|
|
09/25/2008, 09:49
|
#8
|
elite*gold: 0
Join Date: Mar 2007
Posts: 1,032
Received Thanks: 86
|
Wie wärs denn einfach, wenn man den original string zusätzlich in lowercase umwandelt und die beiden dann vergleicht?
mit php:
if ($string == stringtolower($string) return true; // String enthält keine Großbuchstaben
Weil bei deiner Methode, virus, wird das ergebnis auch dann true sein, wenn es kein Buchstabe ist sondern ein anderes zeichen aus der ascii tabelle, dessen Wert kleiner 90 ist.
//Edit: sehe gerade das rattlz die gleiche idee auch schon gepostet hat ^^
|
|
|
09/25/2008, 10:36
|
#9
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Jetzt solltest du uns noch verraten ob du die String Class aus der string lib benutzt oder den String Typ aus der cstring lib, im ersten fall kannst du die tolower methode verwenden und wie bereits mehrfach vorgeschlagen mit dem alten String vergleichen, im zweiten fall suchst du dir die Entsprechende CString Function raus und machst das gleiche, ich bin mir nicht ganz sicher aber ich glaube das die String classe auch eine containslower/upper Methode hat, am besten schaust da mal nach.
|
|
|
09/25/2008, 10:45
|
#10
|
elite*gold: 0
Join Date: Aug 2005
Posts: 1,245
Received Thanks: 60
|
Ich wär dafür mal eine Syntax Highlightening für entsprechende Sources zu implementieren.
Das liest sich besser ^^ (im vim style oder so)
|
|
|
09/25/2008, 11:09
|
#11
|
elite*gold: 0
Join Date: Aug 2005
Posts: 896
Received Thanks: 334
|
Quote:
Originally Posted by al_j
if its unicode you would just have to edit the for-call to i+2 :P
haha mr.rattlz failed ;9
|
Well, this would work with utf-16, but what about utf-8?
|
|
|
09/25/2008, 12:47
|
#12
|
elite*gold: 37
Join Date: Apr 2004
Posts: 2,154
Received Thanks: 250
|
wenn es sich um standard text handelt ist meine methode völlig ausreichend.
ansonsten:
ansi c:
bool ContainsUpper(char* str)
{
for(int i = 0 ; str[i] != 0;i++)
{
if ((( str[i] >='A' ) && (str[i] <='Z'))||(( str[i] >='a' ) && (str[i] <='z')))
{
if (str[i] <='Z') return true;
}
}
return false;
}
cpp.net:
bool ContainsUpper(string^ str)//oder so ähnlich :S
{
{
if ((( str[i] >='A' ) && (str[i] <='Z'))||(( str[i] >='a' ) && (str[i] <='z')))
{
if (str[i] <='Z') return true;
}
}
return false;
}
|
|
|
09/25/2008, 15:36
|
#13
|
elite*gold: 0
Join Date: Sep 2008
Posts: 13
Received Thanks: 0
|
wisst ihr ich hatte eigenlich vor das ganze mit zu machen. Geht das auch weil dan is string ein struct?
|
|
|
09/25/2008, 15:42
|
#14
|
elite*gold: 0
Join Date: Sep 2008
Posts: 13
Received Thanks: 0
|
lol
tut mir leid mein internet kackt ab also kann ichs nich mehr ändern ich meinte ich will "<string>" verwenden
|
|
|
09/25/2008, 18:02
|
#15
|
elite*gold: 37
Join Date: Apr 2004
Posts: 2,154
Received Thanks: 250
|
dann nimm das untere beispiel und lass das ^ weg :<
|
|
|
All times are GMT +1. The time now is 02:59.
|
|