int main() { char tmpbuff[100]; strcpy(tmpbuff, "abcdefghijkl:)mn"); if (strstr(tmpbuff, ":)")) cout << "We have a winner!" << endl; if (strstr(tmpbuff, "):")) cout << "Du bør ikke se det her" << endl; return 0; }
Ja, det er ikke så overraskende at den brokker sig. Ser du i php er "strchr" det samme som "strstr", men i min C-dokumentation er argumenterne listet som flg. char *strchr(const char *s, int c); Det duer derfor ikke at smide ":)" efter en int (implicit char). Den vil nok enten komme med en warning eller oversætte char-pointeren ":)" til en int (med udforudsigeligt resultat).
Til pointerne: 1) Brug altid ' som indkapsling af karakterer og " til indkapling af strenge - du er måske lidt belastet fra php her ;)
2) Du kan opnå den ønskede effekt med strstr (ligeledes i string.h)
#include "stdafx.h" #include <string> using std::string;
int main(int argc, char* argv[]) { string strText = "Hej jeg hedder Benny!"; int nPos = strText.find("hed"); // nPos er nu 8, da substringen begynder på den position
det er i samme omfang jeg skal bruge det, men prøver lige selv.. :) tror godt jeg kan det nemlig
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.