Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Cpp Syntax Problem bei String copy replace

Frage Entwicklung C und C++

Mitglied: s7mahess

s7mahess (Level 1) - Jetzt verbinden

23.06.2010, aktualisiert 16:32 Uhr, 3422 Aufrufe

Hallo meine Aufgabe ist es dies hier zu bewältigen:

I have a special piece of text that represents a specific value. Here's how I calculate it:
  1. Start reading left to right
  2. If a character is a digit, I add it to my sum
  3. If it's an 'x', I remove it and go left two places
  4. Continue until I hit the end of the string
For example, the string '123x456' has a value of 26.

What is the value of '93752xxx746x27x1754xx90x93xxxxx238x44x75xx08750912738x8461x8759383xx328x4x4935903x6x5550360535004x0xx945958961296x267x8842xxx5x6xx61x4x48482x80xxx83316843x7x4x83x9521731xxx25x51xx457x6x5x9698222x771237745034x5133592x27xx8x87xx35221x36x0x50x23x7x63x998418xx'?

01.
#include <iostream> 
02.
#include <string> 
03.
 
04.
using namespace std; 
05.
 
06.
int main(){ 
07.
  int i_length_base,i_length_copy,i_i,i_sum; 
08.
  char c_c='x',c_replace[1]; 
09.
  size_t found; 
10.
  string base="93752xxx"
11.
  //746x27x1754xx90x93xxxxx238x44x75xx08750912738x8461x8759383xx328x4x4935903x6x5550360535004x0xx945958961296x267x8842xxx5x6xx61x4x48482x80xxx83316843x7x4x83x9521731xxx25x51xx457x6x5x9698222x771237745034x5133592x27xx8x87xx35221x36x0x50x23x7x63x998418xx"; 
12.
 
13.
  cout << "string is: "<< base << endl; 
14.
 
15.
 
16.
 
17.
  while ((found=base.find(c_c))!=-1){ 
18.
    cout << "first '" << c_c << "' found at: " << int(found) << endl; 
19.
    i_length_base=base.length(); 
20.
    cout << "actual strlength is: "<< i_length_base << endl; 
21.
 
22.
    i_length_copy=base.copy(c_replace,2,found-2); 
23.
    cout << "c_c: " << c_c << endl;     // warum ändert er mir in der Zeile vorher c_c in 2 um !!!!!!! 
24.
 
25.
    c_replace[i_length_copy]='\0'; 
26.
    cout << "actual c_replace is: "<< c_replace[0] << c_replace[1] << endl; 
27.
 
28.
    base.replace(found,1,c_replace); 
29.
    cout << "new string is: " << base << "\n\n"
30.
 
31.
    c_c='x';                           // wenn ich die stelle hier auskommentiere stürzt alles ab 
32.
33.
 
34.
  for (i_i=0; i_i < base.length(); i_i++){ 
35.
    i_sum=i_sum+(base.at(i_i)-48); 
36.
37.
  cout << "Result i_sum: " << i_sum; 
38.
 
39.
  return(0); 
40.
}
Die Berechnung des neuen kommt später noch, mein Problem ist in den Comments beschrieben, ich kann das Problem zwar mit dem c_c='x'; umgehen, aber das klärt meine Frage warum in der Zeile i_length_copy=base.copy(c_replace,2,found-2); c_c in 2 umgeändert wird nicht.

Bitte um Erklärung.


MfG & Danke

Martin
Ähnliche Inhalte
Datenbanken
gelöst Fehler 1064 you have an error in SQL syntax datenbankabfrage, Search and Replace (1)

Frage von Blackshirt zum Thema Datenbanken ...

Vmware
gelöst Keyboard problem (7)

Frage von rocco61 zum Thema Vmware ...

Windows Server
Freigaben, Berechtigung Problem nach Deaktivierung von Vererbung (7)

Frage von opc123 zum Thema Windows Server ...

Windows Update
WSUS Server Problem

Frage von mibo17 zum Thema Windows Update ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(9)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...