Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
November 29, 2016 How can I concatenate a string, a char array and an int | ||||
---|---|---|---|---|
| ||||
Hi guys, just started to get into Dlang, comming from C and C++ I like to use methods like there if possible. Now I want to catenate something like this, but don't get it to work in standard C i code: char str[80]; sprintf(str, "This is a number = %f", 3.14356); Now in Dlang and import core.stdc.string and code: char [80] str; sprintf(str, "This is a number = %d", 314356); writefln("%s", str); but get error Error: function core.stdc.stdio.sprintf (char* s, const(char*) format, ...) is not callable using argument types (char[80], string, int) Nor does this work char [50] temp = "This is a number"; string greeting5= temp~" "~314356; writefln("%s",greeting5); result in error: Error: incompatible types for ((cast(const(char)[])temp ~ " ") ~ (314356)): 'char[]' and 'int' Any ideas or hints? /anders |
November 29, 2016 Re: How can I concatenate a string, a char array and an int | ||||
---|---|---|---|---|
| ||||
Posted in reply to Anders S | On Tuesday, 29 November 2016 at 10:21:24 UTC, Anders S wrote: > Hi guys, > > just started to get into Dlang, comming from C and C++ I like to use methods like there if possible. > > Now I want to catenate something like this, but don't get it to work > in standard C i code: > char str[80]; > sprintf(str, "This is a number = %f", 3.14356); import std.format; string str = format("This is a number = %f", 3.14356); > > Now in Dlang and import core.stdc.string and > code: > char [80] str; > sprintf(str, "This is a number = %d", 314356); > writefln("%s", str); > > but get error > Error: function core.stdc.stdio.sprintf (char* s, const(char*) format, ...) is not callable using argument types (char[80], string, int) > > Nor does this work > char [50] temp = "This is a number"; > string greeting5= temp~" "~314356; > writefln("%s",greeting5); import std.conv; string temp = "This is a number"; string greeting5 = temp ~ " " ~ to!string(314356); > > result in error: > Error: incompatible types for ((cast(const(char)[])temp ~ " ") ~ (314356)): 'char[]' and 'int' > > > Any ideas or hints? > /anders |
November 29, 2016 Re: How can I concatenate a string, a char array and an int | ||||
---|---|---|---|---|
| ||||
Posted in reply to Anders S | On Tuesday, 29 November 2016 at 10:21:24 UTC, Anders S wrote: > Hi guys, > > just started to get into Dlang, comming from C and C++ I like to use methods like there if possible. > > Now I want to catenate something like this, but don't get it to work > in standard C i code: > char str[80]; > sprintf(str, "This is a number = %f", 3.14356); > > Now in Dlang and import core.stdc.string and > code: > char [80] str; > sprintf(str, "This is a number = %d", 314356); > writefln("%s", str); > sprintf(str.ptr, "This is a number = %d".toStringz,314356); > but get error > Error: function core.stdc.stdio.sprintf (char* s, const(char*) format, ...) is not callable using argument types (char[80], string, int) > because in D arrays do not decay to pointers. To get a null terminated string use toStringz > Nor does this work > char [50] temp = "This is a number"; > string greeting5= temp~" "~314356; > writefln("%s",greeting5); > add a to!string 314356.to!string > result in error: > Error: incompatible types for ((cast(const(char)[])temp ~ " ") ~ (314356)): 'char[]' and 'int' > > > Any ideas or hints? > /anders |
November 29, 2016 Re: How can I concatenate a string, a char array and an int | ||||
---|---|---|---|---|
| ||||
Posted in reply to rumbu | Thanks guys for a really quick answer !! OK, a little bit awkward to use but getting there posting a new question about char * to struct ;) Thanks /anders |
November 30, 2016 Re: How can I concatenate a string, a char array and an int | ||||
---|---|---|---|---|
| ||||
Posted in reply to Anders S | On Tuesday, 29 November 2016 at 15:01:37 UTC, Anders S wrote:
> Thanks guys for a really quick answer !!
> OK, a little bit awkward to use but getting there
> posting a new question about char * to struct ;)
>
> Thanks
> /anders
Also:
import std.conv : text;
string temp = "This is a number";
string greeting5 = text(temp, " ", 314356);
Andrea
|
Copyright © 1999-2021 by the D Language Foundation