Funktionen
-
ich weiß nicht genau weiter würde so ne Funktion bilden:
der soll den 5. Buchstaben in § umwandelnint Umwandeln(char*s)
{
int i;
for(i=0;s[i]!='\0';i++)
if(s[i]==5)
{
s='§';
}
return s;hier soll der string nach den 13. buchstaben enden
int Ende(char*s)
{
int i,Ergebnis
for(i=0;s[i]!='\0';i++)
if(s[i]==13)
{
Eregbnis=i+1;
break;
}
return s;Gruß
Harald
-
Wahrscheinlich gehts ein bisschen einfacher, aber:
void Umwandeln(char *str) { for (int i=0; str[i]!='\0'; i++) { if (i==4) s[i] = '§'; // Weis nicht ob das als Sonderzeichen geht } }
bei der zweiten funktion machst dus genau so, nur dass du an der 13. Stelle ein '\0' einfügst.
Geht aber mit std::string sicher besser.
-
1. benutze bessere Topics, dein Topic sagt absolut nichts aus und wär schon ein Grund dafür deine Frage zu ignorieren
2. weisst du überhaupt was du da tust? Hast du mal ein C++ Buch gelesen?
-
str[4] = '§';
-
Bashar schrieb:
str[4] = '§';
ich hab vorher ne if-Abfrage. Da ist i sowieso 4. oder meinst du etwas anderes?
-
Wenn du schon so fragst, solltest du bei deiner Methode bleiben.
-
Oh, mann. Stimmt. Ich schrieb ja s statt str.
-
Argh
-
Bashar schrieb:
Argh
-
#include <iostream> #include <cstring> void umwandeln(char *str); int main() { char str[10]; strcpy(str, "Hallo"); umwandeln(str); std::cout << str; return 0; } void umwandeln(char *str) { for (int i=0; str[i]!='\0'; i++) { if (i==4) str[i] = '§'; } // besser: // if (strlen(str) >= 5) // str[4] = '§'; }
Was ist da falsch dran?
VC++.Net beschwert sich nicht, und führt das Programm korrekt aus. (Bis auf das Sonderzeichen)
-
Er meint wohl einfach nur
str[4] = '§';
und nicht mehr. Wobei man zuvor wenigstens Prüfen sollte ob der String 6 Zeichen (wegen der endenden Null) lang ist, sofern er sonst nicht setzen soll, also:
if (strlen(str)>=6) str[4] = '§';
Code-Hacker
-
Hab ich ja gesagt, dass man das besser lösen kann. (Und gerade eben gepostet).
-
Jover schrieb:
Hab ich ja gesagt, dass man das besser lösen kann. (Und gerade eben gepostet).
Jo, war aber am schreiben als du deinen gepostet hast...
Code-Hacker
-
Jover schrieb:
Was ist da falsch dran?
VC++.Net beschwert sich nicht, und führt das Programm korrekt aus. (Bis auf das Sonderzeichen)Ist schon ok, nur warum nehmt ihr eigentlich kein std::string?
-
hab ich oben auch schon gepostet. Aber wenn er sich nicht mal mit char * auskennt, dann sollte er zuerst das verstehen bevor er weitermacht.