const char in QChar

Verschiedenes zu Qt
Antworten
sowas
Beiträge: 105
Registriert: 19. September 2006 16:02

const char in QChar

Beitrag von sowas »

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.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

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
sowas
Beiträge: 105
Registriert: 19. September 2006 16:02

const char in QChar

Beitrag von sowas »

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.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

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.
sowas
Beiträge: 105
Registriert: 19. September 2006 16:02

gelöst - const char in QChar

Beitrag von sowas »

Danke.
ich mach mal Pause.
sowas
Beiträge: 105
Registriert: 19. September 2006 16:02

Beitrag von sowas »

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?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

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?
ich hatte vorher gleich meinen Beitrag noch editiert.
Also entweder so:

Code: Alles auswählen

int count = s.count("'");
oder so

Code: Alles auswählen

int count = s.count(QChar('\''));
sowas
Beiträge: 105
Registriert: 19. September 2006 16:02

gelöst - const char in QChar

Beitrag von sowas »

Hallo,
beide funktionieren, aber es ist sehr ermüdend nach der richtigen Syntax zu suchen. Danke
Antworten