warum geht das nicht?
-
char var1[]={"<php> :h/<sql connetionstring=var>http://212.142.234.95/Chat.php connetion=true"};
char *var2;
int pos;
pos=strchr(var1,'http://'); // Finde 'http://'
var2=var1+pos; // var2 zeigt auf das erst '/' nach dem ':'
var1[pos]=0x00;// var1 ist fertig, Anstelle von '/' steht da ein 0x00 == Stringende
pos=strchr(var2,'/');// Finde '/'
var2=var2+pos; // var 2 Zeigt jetzt auf / vor Chatich will dann in 2 variablen folgendes haben:
string1=<php> :h/<sql connetionstring=var>http://
string2=/Chat.php connetion=truebitte um hilfe!!!!!
lg surf.
-
Mal so interessehalber, warum sollte var2 jetzt auf dzweiten Slash zeigen ?
Vorallem was passiert genau wenn "var1 + pos" ausgeführt wird ? Dürfte var2 da nicht eher ans Ende des Strings gesetzt werden ?var2=var1+pos; // var2 zeigt auf das erst '/' nach dem ':'
-
char *str1 = "Borlanpd :/hInternational http://212.134.62.54/chat.php </l> hallo";
char *str2 = "http://";
char *ptr;
int pos;
char string1;
char string2;ptr = strstr(str1, str2); //nach http:// suchen
pos=ptr-str1; //pos an dem der string http:// gefunden wurde
strncpy(string1, str1, pos); //vom anfang bis pos in string1 kopieren
string1[pos++] = '\0'; //variable string1 abschließen// stehen soll in string1="Borlanpd :/hInternational ";
// hab aber noch einen access volation error, warum?????????????????// frageeeeeeeee: wie mach ich das steht in string 2="chat.php </l> hallo";
// am schluss will ich string1 und string2 zusammenfügen:
// string3="Borlanpd :/hInternational chat.php </l> hallo";// bitte um hilfe!
lg surf.
-
@Surf.
pos=strchr(var1,'http://'); // Finde 'http://'
geht nicht strchr sucht nur nach einem Buchstaben in var1 nicht nach einem String
ob du noch weiteres verschlimmbessert hast weis ich nicht[Edit} Hier ist noch ein Fehler strchr bringt einen Pointer der auf den gefundenen Buchstaben zeigt und nicht die Position
im String zurück
weiteres siehe unten
-
char var1[]={"<php> <sql connetionstring=var>http://212.142.234.95/Chat.php connetion=true"};
pos=13;
var2=var1+pos; // var2 zeigt auf das erst '/' nach dem ':'wenn in pos eine sinnvolle Zahl steht (sprich eine Position im String), nimmt er den Pointer von var1 und erhöht um pos Zeichen, zeigt somit auf die Stelle im String die pos Zeichen vom Stringanfang entfernt ist. Wenn ich jetzt diese Adresse in var2 speichere zeigt var2 auf die gefundene Stelle
Wenn pos keine sinnvolle Stell im String ist, zeigt er damit ins nirwana.
An der Stelle sollte man mal ins Orginal schauen.
-
[Edit]
Fehler in der Behandlung von strchr
Hier eine alternative Hardcore Lösung der : von http und das letzte '/' gehen dabei aber verloren.C/C++ Code:
char var1[]={"<php> <sql connetionstring=var>http://212.142.234.95/Chat.php connetion=true"};
char *var2;
char *var3;var2=strchr(var1,':'); // Finde ':'
*var2=0x0;
var2++;
var3=strchr(var2,'C');// Finde 'C'
*(var3-1)=0;C/C++ Code:
...........................
-
hi!!!!!!!!
ich muss nach einem string suchen mit strstr!!!!!! bitte da um hilfe:
weil was mach ich wenn:
char var1[]={"<php> ht:<sql/ connetionstring=var>http://212.142.234.95/Chat.php connetion=true"};
ist???? das kann auch vorkommen!!!! das ist dann nicht eindeutig genug!!!bitte um help!!
lg surf.
-
in einer anderen textdatei heißt schaut das so aus:
char var1[]={"<php> ht:<sql/ connetionstring=var>http://212.142.234.95/Guestbook.php connetion=true"};das heißt ich muss nach http:// suchen und nach dem nächsten / Zeichen nach http:// das ist das Zeichen vor dem Guestbook.php!!!
lg surf.
-
Schon mal was von Handbüchern und Hilfefunktionen gehört.
Lebendes lexikon ist ja toll, aber warum sollen andere suchen, wenn man es selber kann?
-
code:
int main(void)
{char text[] = "Das ist hp:1213/ http://212.123.234.78/chat.php ein Teststring";
int i,b,hilf,j,aktivate;
char Buffer[2000];
char Buffer2[2000];
int Laenge, result;
i=0;
b=0;
j=0;
aktivate=0;
result=0;
Laenge=0;
hilf=0;Laenge=strlen(text);
for(b=0;b<Laenge;b++)
{
if (text[b]=='h')
{
if(hilf==0)
{
result=1;
hilf=1;
}
}
else if ((text[b]=='t')&(text[b-1]=='h'))
result++;
else if ((text[b]=='t')&(text[b-1]=='t')&(text[b-2]=='h'))
result++;
else if ((text[b]=='p')&(text[b-1]=='t')&(text[b-2]=='t')&(text[b-3]=='h'))
result++;
else if ((text[b]==':')&(text[b-1]=='p')&(text[b-2]=='t')&(text[b-3]=='t')&(text[b-4]=='h'))
result++;
else if ((text[b]=='/')&(text[b-1]==':')&(text[b-2]=='p')&(text[b-3]=='t')&(text[b-4]=='t')&(text[b-5]=='h'))
result++;
else if ((text[b]=='/')&(text[b-1]=='/')&(text[b-2]==':')&(text[b-3]=='p')&(text[b-4]=='t')&(text[b-5]=='t')&(text[b-6]=='h'))
result++;
printf("%d",result);if(result<=7)
{
printf("%c\n",text[b]);
Buffer[i++]=text[b];if(result==7)
{while(b<Laenge)
{
b++;
if (text[b]=='/')
aktivate=1;
if(aktivate==1)
Buffer2[j++]=text[b];
}break;
}}
}Laenge=0;
Buffer[i++]='\0';
Buffer2[j++]='\0';
Laenge=strlen(Buffer);i=0;
while(i<Laenge)
{
printf("%c",Buffer[i++]);
}Laenge=0;
Laenge=strlen(Buffer2);
j=0;
printf("\n");while(j<Laenge)
{
printf("%c",Buffer2[j++]);
}getch();
}wie kann ich das auf einfache weiße machen???????
bitte um hilfe....mit strstr!!!!!!!!!!!!!!!!!hab net so den durchblick mit strstr!!!!lg surf
-
int main(void) { char text[] = "Das hhhist hp:1213/ http://212.123.234.78/chat.php ein Teststring"; int i,b,weiter1,j,weiter2,Laenge, result; char Buffer1[2000], Buffer2[2000], *string1, *string2; // Variablen inizializieren i=0; b=0; j=0; weiter2=0; result=0; Laenge=0; weiter1=0; // Länge den Stringes: Text bestimmen Laenge=strlen(text); for(b=0;b<Laenge;b++) { // Wenn das Zeichen 'h' gefunden wird if (text[b]=='h') { // Das Zeichen 'h' nur einmal einlesen if(weiter1==0) { result++; weiter1=1; } } // Wenn die Zeichen 'h' und 't' hintereinander gefunden werden else if ((text[b]=='t')&(text[b-1]=='h')) result++; // Wenn die Zeichen 'h', 't', 't' hintereinander gefunden werden else if ((text[b]=='t')&(text[b-1]=='t')&(text[b-2]=='h')) result++; // Wenn die Zeichen 'h', 't', 't', 'p' hintereinander gefunden werden else if ((text[b]=='p')&(text[b-1]=='t')&(text[b-2]=='t')&(text[b-3]=='h')) result++; // Wenn die Zeichen 'h', 't', 't', 'p', ':' hintereinander gefunden werden else if ((text[b]==':')&(text[b-1]=='p')&(text[b-2]=='t')&(text[b-3]=='t')&(text[b-4]=='h')) result++; // Wenn die Zeichen 'h', 't', 't', 'p', ':', '/' hintereinander gefunden werden else if ((text[b]=='/')&(text[b-1]==':')&(text[b-2]=='p')&(text[b-3]=='t')&(text[b-4]=='t')&(text[b-5]=='h')) result++; // Wenn die Zeichen 'h', 't', 't', 'p', ':', '/', '/' hintereinander gefunden werden else if ((text[b]=='/')&(text[b-1]=='/')&(text[b-2]==':')&(text[b-3]=='p')&(text[b-4]=='t')&(text[b-5]=='t')&(text[b-6]=='h')) result++; // Solange die 7 Zeichen: http:// nicht gefunden wurden if(result<=7) { // Zeichen bis ende des http:// in Buffer1 einlesen Buffer1[i++]=text[b]; // Wenn http:// gefunden if(result==7) { // Solange nicht das Ende des Stringes text erreicht wird while(b<Laenge) { b++; // nach dem nächsten / suchen if (text[b]=='/') weiter2=1; if(weiter2==1) // Zeichen ab / bis ende des Stringes text in Buffer2 einlesen Buffer2[j++]=text[b]; } } } } // Variablen mit \0 abschließen damit es ein String ist Buffer1[i++]='\0'; Buffer2[j++]='\0'; // Variable in einen neuen Speicherbereich geben string1 = strdup(Buffer1); string2 = strdup(Buffer2); printf("%s\n",string1); printf("%s",string2); getch(); }
hi@all!!! gibt es auch eine einfachere lösung mit strstr...wo ich nach http:// suche???? damit das gleiche ergebnis raus kommt????
lg surf.
-
Jetzt lies doch endlich mal ne hilfe, oder schau im Internet in der msdn nach, da gibts beispiele!!!!
-
Wie gesagt, wieso nicht einfach den String der scheinbar immer verwendet wird in Variablen speichern, IP einfügen, zweiten Stringteil an den ersten hängen und wegschreiben.
Ansonsten würde ich dir auch raten: MSDN, div. Suchmaschinen oder....ein BUCH! Eine erfindung die gerade bei der Programmierung mit C++ beachtet werden sollte, aber die wenigsten scheinen das du verstehen das man für es nicht nur mit 100 Tutorials schaffen und kann und selbst wenn doch, so habe ich wesentlich mehr mit einem Buch für 10€ erreich wo alles zwar nur kurz, aber sehr verständlich und anschaulich erklärt wird....
Code-Hacker
-
surf. schrieb:
hi@all!!! gibt es auch eine einfachere lösung mit strstr...wo ich nach http:// suche???? damit das gleiche ergebnis raus kommt????
doku lesen scheint nicht deine Stärke zu sein, was? Klick: man: strstr(3)
char text[] = "Das hhhist hp:1213/ http://212.123.234.78/chat.php ein Teststring"; char *tmp = strstr(text, "http://"); if(tmp == NULL) HTTP:// NICHT GEFUNDEN --> exit
-
supertux, ich glaube nach 5 Jahren interessiert das nicht mehr
-
Tim schrieb:
supertux, ich glaube nach 5 Jahren interessiert das nicht mehr
das verstehe ich nicht
bitte um Erklärung
-
supertux schrieb:
das verstehe ich nicht
bitte um Erklärung
Der letzte nicht-Spam-Beitrag ist von Oktober 2003.