char an eine string-funktion übergeben
-
Hi,
Wie kann man ein Char aus einem String einer Funktion übergeben, die einen String
als Parameter erwartet?
bsp:void schreib(char *msg) { printf("%s",msg); } ... char *test = "test"; char test2 = test[1]; schreib(test2); ->geht nicht >>cannot convert parameter 1 from 'int' to 'char *'
-
Höchstens, indem Du einen ein char langen string erzeugst...
char str[2]; str[0] = test[1]; str[1] = '\0'; schreib(str);
-
C99 kommt dir mit arrayliteralen zur hilfe:
int foo(char *bar) { return bar[0]; } int main(void) { char *test = "test"; char test2 = test[1]; printf("%d", foo([b](char[]){test2, '\0'}[/b])); // der cast nach char[] ist notwendig return 0; }
-
Oder du könntest auch die Adresse deines Zeichens (&test2) übergeben.
(aber Achtung: ein einzeln stehendes Zeichen hat keinen Null-Teminator - das könnte Probleme geben, wenn die Funktion von einem "ordentlichen" String ausgehen will)