12. juni 2001 - 13:51
Der er
13 kommentarer og 1 løsning
hvordan replacer man nemmest noget i en tekst???
Hvis jeg har en char var; som indeholder: \"dav per\", hvordan kan jeg så replace \" \" med ex. \"_\" ??? I PHP er det jo ret ligetil med str_replace, men hvad med c++? per
Annonceindlæg fra Infor
Det kommer an på hvilken type din streng er. Hvilket miljø arbejder du i?????
En char variabel kan kun indeholde ét tegn! Hvis du skal bruge en streng, skal du bruge et char-array eller en char-pointer
det er et array. men hvis jeg forsøger at: if(var[i] = \" \") var[i] = \"_\"; får jeg: error C2440: \'=\' : cannot convert from \'char [2]\' to \'char\' This conversion requires a reinterpret_cast, a C-style cast or function-style cast. per
Hvis du bruger en char-pointer: char* MyStr = \"dav per\"; MyStr[3]=\'_\'; cout << MyStr; Hvis du bruger et array er det det samme: char MyStr[]=\"dav per\"; MyStr[3]=\'_\'; cout << MyStr;
DET ER FORDI DU BRUGER DOBBELT-ANFØRSELSTEGN!!!!!
Skift dine \" ud med \'. Det skulle gøre det!
den stopper når den når til en blank \' \'! #include <iostream> using std::cout; using std::cin; int main() { char var[9]; cout << \"Indtast et eller andet\\n\"; cin >> var; int i=0; while(i < 10){ if(var[i] = \' \') var[i] = \'_\'; cout << var[i] << \"\\n\"; i++; } cout << var; return 0; }
Du skal bruge dobblet lighedstegn == if(var[i] == \' \')
det virker ikke. den stopper når den når til en tom plads (dav per), mellemrummet ml. dav og per, gør at den hopper helt ud af programmet! per
12. juni 2001 - 14:55
#10
Du skal iøvrigt bruge while(i < 9) og ikke 10!!!
12. juni 2001 - 14:57
#11
det hjælper ikke meget :) -> #include <iostream> using std::cout; using std::cin; int main() { char var[9]; cout << \"tast tal: \"; cin >> var; int i=0; while(i < 9){ if(var[i] == \' \') var[i] = \'_\'; cout << var[i] << \"\\n\"; i++; } cin >> var; return 0; }
13. juni 2001 - 10:58
#12
I stedet for al den kode, så kig i standard-biblioteket <algorithm>, den er ret nem med en af replace-functionerne.... f.eks. replace_copy_if
13. juni 2001 - 12:40
#13
->perlarsen.com: Du kan ikke indtaste mellemrum i linien cin >> var; Hvis mellemrum skal accepteres, skal du bruge getline();
13. juni 2001 - 12:51
#14
Prøv dette (kører i Borland 5.02): #include <iostream> #include <conio> #include <String> int main() { char MyStr[100]; cout << \"Indtast saetning:>\"; cin.getline(MyStr, 100); cout << MyStr << endl; //Søg efter mellemrum, og udskift med underscore for (int i=0; i<sizeof(MyStr); ++i) if (MyStr[i] == \' \') MyStr[i] = \'_\'; cout << MyStr << endl; getch(); return 0; }
Kurser inden for grundlæggende programmering