auf ein gesundes Neues und ich habe ein Problem:
Diese kleine Routine läuft nicht unter qt4.
Ich will nur das Vorkommen von einem Zeichen(') im String suchen.
bool suchZeichen(const QString &s){
int zhl=0;
int lg=s.length();
for (int i=0; i<lg; i++){
if (s=="'")
zhl++;
}
return zhl;
}
ich bekomme aber die Meldung:
- Umformung von »const char [2]« in »QChar« ist nicht eindeutig -
und ich weiß nicht wie ich das machen soll.
Vielleicht soll ich heute aufhören.
const char in QChar
Hi,
1) du deklarierst als Rückgabewert ein bool, zählst aber das Vorkommen des Zeichens ab.
2) Entscheide dich was du haben willst, ob oder wie oft das Zeichen vorkommt.
Entsprechend kannst du direkt auf die QString-Api zugreifen.
bool contains ( QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
oder
int count ( QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
Grüße
Franz
1) du deklarierst als Rückgabewert ein bool, zählst aber das Vorkommen des Zeichens ab.
2) Entscheide dich was du haben willst, ob oder wie oft das Zeichen vorkommt.
Entsprechend kannst du direkt auf die QString-Api zugreifen.
bool contains ( QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
oder
int count ( QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
Grüße
Franz
const char in QChar
Hallo,
Danke für die schnelle Antwort
ich brauch den zweiten Vorschlag aber ich weiß nicht wie ich die Api in die Routine einbauen soll.
Danke für die schnelle Antwort
ich brauch den zweiten Vorschlag aber ich weiß nicht wie ich die Api in die Routine einbauen soll.
Du kannst doch auf die Routine komplett verzichten!
Code: Alles auswählen
QString s("Blabla'mit'Gänsefuß'");
int count = s.count("'");
Zuletzt geändert von franzf am 1. Januar 2009 15:18, insgesamt 1-mal geändert.
gelöst - const char in QChar
Danke.
ich mach mal Pause.
ich mach mal Pause.
ich hatte vorher gleich meinen Beitrag noch editiert.sowas hat geschrieben:ich konnte nicht es lassen und habe meinen code durch fogendes ersetzt
int ist;
int count = s.count(QChar("'")); <---
if count > 2
ist =ist /2
return ist;
ersetzt, und da kommt wieder die Fehlermeldung:
<---Aufruf des überladenen »QChar(const char [2])« ist mehrdeutig-
Was nun?
Also entweder so:
Code: Alles auswählen
int count = s.count("'");Code: Alles auswählen
int count = s.count(QChar('\''));gelöst - const char in QChar
Hallo,
beide funktionieren, aber es ist sehr ermüdend nach der richtigen Syntax zu suchen. Danke
beide funktionieren, aber es ist sehr ermüdend nach der richtigen Syntax zu suchen. Danke