Avatar billede perlarsen.com Nybegynder
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
Avatar billede kamikaze Nybegynder
12. juni 2001 - 14:06 #1
Det kommer an på hvilken type din streng er. Hvilket miljø arbejder du i?????
Avatar billede jpk Nybegynder
12. juni 2001 - 14:06 #2
En char variabel kan kun indeholde ét tegn!
Hvis du skal bruge en streng, skal du bruge et char-array eller en char-pointer
Avatar billede perlarsen.com Nybegynder
12. juni 2001 - 14:09 #3
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
Avatar billede kamikaze Nybegynder
12. juni 2001 - 14:10 #4
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;
Avatar billede kamikaze Nybegynder
12. juni 2001 - 14:11 #5
DET ER FORDI DU BRUGER DOBBELT-ANFØRSELSTEGN!!!!!
Avatar billede kamikaze Nybegynder
12. juni 2001 - 14:14 #6
Skift dine \" ud med \'. Det skulle gøre det!
Avatar billede perlarsen.com Nybegynder
12. juni 2001 - 14:19 #7
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;
}
Avatar billede jpk Nybegynder
12. juni 2001 - 14:22 #8
Du skal bruge dobblet lighedstegn ==
if(var[i] == \' \')
Avatar billede perlarsen.com Nybegynder
12. juni 2001 - 14:50 #9
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
Avatar billede jpk Nybegynder
12. juni 2001 - 14:55 #10
Du skal iøvrigt bruge while(i < 9) og ikke 10!!!
Avatar billede perlarsen.com Nybegynder
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;

}
Avatar billede moykal Nybegynder
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
Avatar billede kamikaze Nybegynder
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();
Avatar billede kamikaze Nybegynder
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;
}
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester