Hallo, ich arbeite zurzeit an einer Client-Server anwendung, mit der ich Befehle von meinem Server an den Client schicken kann. Mein Client ist ein Robot auf dem ein Linux System lauft und der kann z.B.: laufen oder etwas sagen. Mein Problem ist nun, dass der Befehl "say: Hallo Welt" nicht richtig foramtiert wird. Der Roboter hat eine vorhandene Bibliothek mit der ich einen String übergeben kann aber vorher muss ich das "say:" wegschneiden. Ich habe mir eine Methode geschrieben die dies machen soll, aber diese funktioniert nicht wie sie soll, ich hoffe jemand kann mir helfen!
Methode:
Ausgabe auf meiner Konsole:
Methode:
Code:
char *WhatToSay(char *str)
{
int size = strlen(str)-5; // -5 da "say:" weggeschnitten wird und ein \n am ende vom server hinzugefügt wird
char *help = new char[size];
bzero(help, size);
cout << size << " - " << strlen(help) << endl;
for(int i=0; i<size;i++)
{
char c = str[i+4];
cout << i << "->" << c << " - " << strlen(help) << "->";
help[i] = c;
cout << strlen(help) << endl;
}
cout << strlen(help) << "-" << size << endl;
return help;
}
Ausgabe auf meiner Konsole:
Code:
17 - 0
0->H - 0->1
1->a - 1->2
2->l - 2->3
3->l - 3->4
4->o - 4->5
5-> - 5->6
6->i - 6->7
7->c - 7->8
8->h - 8->9
9-> - 9->10
10->b - 10->11
11->i - 11->12
12->n - 12->13
13-> - 13->14
14->N - 14->15
15->A - 15->16
16->O - 16->20 //=> Problem!! Solange ist der String nicht
20-17