How to resolve the algorithm Strip control codes and extended characters from a string step by step in the FreeBASIC programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Strip control codes and extended characters from a string step by step in the FreeBASIC programming language
Table of Contents
Problem Statement
Strip control codes and extended characters from a string.
The solution should demonstrate how to achieve each of the following results:
In ASCII, the control codes have decimal codes 0 through to 31 and 127. On an ASCII based system, if the control codes are stripped, the resultant string would have all of its characters within the range of 32 to 126 decimal on the ASCII table. On a non-ASCII based system, we consider characters that do not have a corresponding glyph on the ASCII table (within the ASCII range of 32 to 126 decimal) to be an extended character for the purpose of this task.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Strip control codes and extended characters from a string step by step in the FreeBASIC programming language
Source code in the freebasic programming language
' FB 1.05.0 Win64
Function stripControlChars(s As Const String) As String
If s = "" Then Return ""
Dim count As Integer = 0
Dim strip(0 To Len(s) - 1) As Boolean
For i As Integer = 0 To Len(s) - 1
For j As Integer = 0 To 31
If s[i] = j OrElse s[i] = 127 Then
count += 1
strip(i) = True
Exit For
End If
Next j
Next i
Dim buffer As String = Space(Len(s) - count)
count = 0
For i As Integer = 0 To Len(s) - 1
If Not Strip(i) Then
buffer[count] = s[i]
count += 1
End If
Next
Return buffer
End Function
Function stripExtendedChars(s As Const String) As String
If s = "" Then Return ""
Dim count As Integer = 0
Dim strip(0 To Len(s) - 1) As Boolean
For i As Integer = 0 To Len(s) - 1
For j As Integer = 128 To 255
If s[i] = j Then
count += 1
strip(i) = True
Exit For
End If
Next j
Next i
Dim buffer As String = Space(Len(s) - count)
count = 0
For i As Integer = 0 To Len(s) - 1
If Not Strip(i) Then
buffer[count] = s[i]
count += 1
End If
Next
Return buffer
End Function
Dim s As String = !"\v\001The\t quick\255 \vbrown\127\f fox\156"
Dim s1 As String = stripControlChars(s)
Dim s2 As String = stripExtendedChars(s)
Dim s3 As String = stripExtendedChars(s1)
' Under Windows console, code page 850 :
' "vertical tab" displays as ♂
' "form feed" displays as ♀
' Chr(1) displays as ☺
' Chr(127) displays as ⌂
' the other control characters do what it says on the tin
' Chr(156) displays as £
' Chr(255) displays as space
Print "Before stripping :" , s
Print "Ctl chars stripped :" , s1
Print "Ext chars stripped :" , s2
Print "Both sets stripped :" , s3
Print
Print "Before stripping" , "Length => " ; Len(s)
Print "Ctl chars stripped" , "Length => " ; Len(s1)
Print "Ext chars stripped" , "Length => " ; Len(s2)
Print "Both sets stripped" , "Length => " ; Len(s3)
Print
Print "Press any key to quit"
Sleep
You may also check:How to resolve the algorithm Horizontal sundial calculations step by step in the Raku programming language
You may also check:How to resolve the algorithm Events step by step in the Mathematica/Wolfram Language programming language
You may also check:How to resolve the algorithm Operator precedence step by step in the VBScript programming language
You may also check:How to resolve the algorithm Kronecker product step by step in the D programming language
You may also check:How to resolve the algorithm Numerical integration step by step in the PL/I programming language