Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Comments on How to get string length in D?

Parent

How to get string length in D?

+4
−1

I'm new to D and am planning to use it for golfing. I want to make a ROT13 converter and I want to determine the length of an inputted string.

Is there a function for this? If not, what ways can I get a string's length in D?

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

1 comment thread

https://dlang.org/phobos/std_string.html (1 comment)
Post
+1
−0

Strings in D can be assigned either as char[] or string. Both have .length with them, which can be added at the end of the variable's name after assignment.

import std.stdio;  

void main(string[] args) { 
	string greeting1 = "Good";
	writefln("Length of string greeting1 is %d",greeting1.length);
	char[] greeting2 = "morning".dup;
	writefln("Length of string greeting2 is %d",greeting2.length);
}

Try it online!

Code edited and imported from TutorialsPoint.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

1 comment thread

tangent: why .dup? (4 comments)
tangent: why .dup?
Monica Cellio‭ wrote over 3 years ago · edited over 3 years ago

This is a tangent I know, but why .dup on the second case (the char[])?

General Sebast1an‭ wrote over 3 years ago

Monica Cellio‭ Don't know exactly, but it might have something to do with being char[] rather than string. You can read the TutorialsPoint link if it might help.

elgonzo‭ wrote over 3 years ago · edited over 3 years ago

You could also read the language doc instead of some 3rd-party website: https://dlang.org/spec/arrays.html#strings. Since everybody likes to read comments, but nobody likes to read documentation :-P , here a straight copy&paste: "String literals are immutable (read only)" and from https://dlang.org/spec/arrays.html#array-properties about .dup: "The copy will have any immutability or const stripped.". So basically, "morning" is immutable and "morning".dup is a mutable copy as a dynamic array.

elgonzo‭ wrote over 3 years ago · edited over 3 years ago

Therefore, the usage of .dup in the above example is neccesary, since char[] is a dynamic array, a mutable type...