Youkoso!
Here's Traditional Way (C Language)
- We use null-terminated (
\0
) character array, although it is not technically a data type. - So, Operators cannot be applied to them, like assignment and comparison operators
=, <, >, <=, >=
.
// Declaration of character array
char s1[10], s2[10];
s1[10] = "Doge";
// Error Full Code (Don't use at home/work)
s2 = s1;
s2 > s1;
s3 = s1 + s2;
This code results in invalid array operations.
Strings in C++
- The
string
class is a expertise class of a more general template calledbasic_string
. - Since defining a class in C++ is creating a new data type, string is derived data type.
- This means operators can be overloaded for this class.
syntax
class string{
// Variables
// functions
// operators
}
string s1;
s1.function();
s1.operator(arguments);
string operations are safe but time consuming. So, 'char array' (speedy, less operations) concept is not deprecated.
if (speed matters)
{
Use character array
}else if (safety and easy manipulation matters)
{
Use string
class
}
Here's why string
is safer than character array
- Careless programmers, can overrun to the end of
an array that holds a null terminated (null character
\0
) string. - for example - see below
- string class handles such issues.
char s3[10];
strcpy(s3,"Hello careful programmers.");
String is also in STL (but concept of string is thought apart from STL concepts)
- string is an another container class.
To use string class, we have to include string header class. (not string.h)
#include<string>
(for string header class)#include<string.h>
(in C, for string functions applied on character array)
String class supports many constructors as follows.
string()
string(const char *str)
string(const string &str)
Operators
=
(assignment)+
(concatenation)+=
(concatenation assignment)==
(equality)!=
(inequality)<
(less than)<=
(less than equal to)>
(greater than)>=
(greater than equal to)[]
(subscripting)<<
(insertion)>>
(extraction)
Mixed Operations
- We can mix string objects with another string object or C style string.
- C++ string can also be concatenated with character const.
Useful methods
assign()
append()
insert()
replace()
erase()
find()
rfind()
compare()
c_str()
size()
Visit :
ittekimasu! :)