# Strings

In this chapter we are going to learn about strings creation and manipulation.

## String Literals

Syntax:

```cStr = "This is a string"
cStr2 = 'Another string'
cStr3 = :JustAnotherString
cStr4 = `Yet "another" 'string' ! `
```

## Get String Length

We can get the string length (letters count inside a string) using the len() function

Syntax:

```len(string) ---> string length
```

Example:

```cStr = "How are you?"
see cStr + nl
see "String size : " + len(cStr) + nl
```

## Convert Letters Case

Syntax:

```lower(string) ---> convert string letters to lower case
upper(string) ---> convert string letters to UPPER case
```

Example:

```cStr = "Welcome To The Ring Programming Language"
see cStr + nl + upper(cStr) + nl + lower(cStr)
```

## Access String Letters

We can access a letter inside a string by the letter index

Syntax:

```string[index] ---> get string letter
string[index] = letter  # set string letter
```

Example:

```# print user name letter by letter (each letter in new line)

See "Hello, Enter your name : " give cName
for x = 1 to len(cName)
see nl + cName[x]
next
```

We can use for in to get string letters.

Example:

```# print user name letter by letter (each letter in new line)

See "Hello, Enter your name : " give cName
for x in cName
see nl + x
next
```

We can modify the string letters

Example:

```# convert the first letter to UPPER case

See "Enter your name : " give cName
cName = upper(cName)
see "Hello " + cName
```

## Left() Function

We can get a specified number of characters from a string using the Left() function.

The starting position is 1.

Syntax:

```Left(string,count)
```

Example:

```see left("Hello World!",5) # print Hello
```

## Right() Function

We can get a specified number of characters from a string using the Right() function.

The starting position is the last character on the right.

Syntax:

```Right(string,count)
```

Example:

```see Right("Hello World!",6) # print World!
```

## Trim() Function

We can remove all leading and trailing spaces from a string using the Trim() function.

Syntax:

```trim(string)
```

Example:

```cMsg = "     Welcome      "
see trim(cMsg)                  # print Welcome
```

## Copy() Function

We can duplicate a string more than one time using the copy() function.

Syntax:

```copy(string,nCount) ---> string replicated nCount times
```

Example

```see copy("***hello***",3) # print ***hello******hello******hello***
```

## Lines() Function

We can count the number of lines inside a string using the Lines() function.

Syntax:

```lines(string) ---> Number of lines inside the string
```

Example:

```cStr = "Hello
How are you?
are you fine?"
see lines(cStr)         # print 3
```

## Substr() Function

We can work on sub strings inside a string using the substr() function. Using Substr() we can

• Find substring
• Get substring from position to end
• Get Number of characters from position
• Transform Substring To Another Substring

## Find substring

Syntax:

```substr(string,substring)  ---> the starting position of substring in string
```

Example:

```cStr = "Welcome to the Ring programming language"
see substr(cStr,"Ring")         # print 16
```

## Get substring from position to end

Syntax:

```substr(string,position)  ---> Get substring starting from position to end
```

Example:

```cStr = "Welcome to the Ring programming language"
nPos = substr(cStr,"Ring")      # nPos = 16
see substr(cStr,nPos)           # print Ring programming language
```

## Get Number of Characters From Position

Syntax:

```substr(string,position,count)  ---> Get characters starting from position
```

Example:

```cStr = "Welcome to the Ring programming language"
nPos = substr(cStr,"Ring")      # nPos = 16
see substr(cStr,nPos,4)         # print Ring
```

## Transform Substring To Another Substring

Syntax:

```substr(string,substring,newsubstring)  ---> Transformed string (Match case)
substr(string,substring,newsubstring,1)  ---> Transformed string (Ignore case)
```

Example:

```cStr = "Welcome to the New programming language"
see substr(cStr,"New","Ring") + nl  # print Welcome to the Ring programming language
see substr(cStr,"new","Ring",1)+ nl # print Welcome to the Ring programming language
```

## strcmp() Function

We can compare between two strings using the strcmp() function.

Syntax:

```strcmp(cString1,cString2) ---> value = 0 if cString1 = cString2
value < 0 if cString1 < cString2
value > 0 if cString1 > cString2
```

Example:

```see strcmp("hello","hello") + nl +
strcmp("abc","bcd") + nl +
strcmp("bcd","abc") + nl
```

Output:

```0
-1
1
```

## str2list() and list2str() Functions

We can convert string lines to list items using the str2list() function. Also we can convert the list to a string using list2str() function.

Syntax:

```str2list(string) ---> list contains the string lines
list2str(list)   ---> string contains the list items
```

Example:

```/* output:
** Items : 4
** Item : Hello
** Item : How are you ?
** Item : are you fine ?
** Item : ok
** list2Str result = Hello
** How are you ?
** are you fine ?
** ok
** Done
*/

mystr = "Hello
How are you ?
are you fine ?
ok"

mylist = str2list(mystr)
see "Items : " + len(mylist) + nl

for x in mylist
see "Item : " + x + nl
next

newstr = list2str(mylist)
see "list2Str result = " + newstr

if mystr = newstr
see nl + "Done"
else
see nl + "Error!"
ok
```