Addieren
-
wie kann ich Zeichenketten addieren?
char* a;
a = "Hallo"+" Du";
-
-
Man kann Zeichenketten nicht addieren, höchstens aneinanderhängen:
#include <stdio.h> #include <string.h> int main( ) { char first[ ] = "Hello "; char second[ ] = "dude!"; char* merged = malloc( strlen( first ) + strlen( second ) + 1 ); if( merged ) { strcpy( merged, first ); strcat( merged, second ); puts( merged ); } else { puts( "Not enough memory!" ) } }
-
Sascha999999999 schrieb:
wie kann ich Zeichenketten addieren?
char* a;
a = "Hallo"+" Du";Was soll denn das Ergebnis sein? 5, 5.0?
Was du meinst ist das aneinanderhängen von Zeichenketten und das ist keine Addition, auch wenn in einigen Programmiersprachen aus unerklärlichen Gründen das gleiche Symbol für das aneinanderhängen und die Addition benutzt wird.
Das Grundprinzip in C sieht wie folgt aus: Ein String sind alle Zeichen bis eine 0 im Speicher gefunden wird. Also grundlegend sucht man die 0 und schreibt dann alle Zeichen aus dem zweiten String (inklusive der abschließenden 0).
Folgende Standard-Funktionen können dir dabei helfen.
man: strcat
man: strncatBeachte nur du musst dich um die Reservierung von ausreichend Speicher kümmern!
-
Allerdings ist es möglich mit einzelnen chars zu addieren. (ASCII-WERTE)
[cpp]
#include <stdlib.h>int _tmain(int argc, _TCHAR* argv[])
{
char a='a';
char b='b';
int c= (int)a + (int)b;printf("%d %d", 4*2/8,c);
system("PAUSE");
return 0;
}
[cpp]
-
€NIGMA schrieb:
Allerdings ist es möglich mit einzelnen chars zu addieren. (ASCII-WERTE)
das hat aber nichts mit der "String Addition" zu tun, die 1. sinnlos und 2. undefiniert ist. Du addierst nur die nummerische Darstellung der Zeichen.