String Manipulation Functions
String Manipulation functions allow you to manipulate or compare strings.
These functions begin with the
str prefix. Expand the category to view a
list of the available functions.
Click one of the following functions for more information:
|
|
|
Concatenates two strings.
|
|
Returns the pointer to the first occurrence of a
character in a string.
|
|
Compares two strings to determine the alphabetic
order.
|
|
Copies one string to another.
|
|
|
|
Performs a case-insensitive comparison of two
strings.
|
|
Returns the length of a string.
|
|
Converts a string to lower case.
|
|
Concatenates n characters from one string to
another.
|
|
Compares the first n characters of two strings.
|
|
Copies the first n characters of one string to
another.
|
|
Performs a case-insensitive comparison of n strings.
|
|
Finds the last occurrence of a character in a string.
|
|
Fills a string with a specific
character.
|
|
Returns the length of the leading characters in a
string that are contained in a specified string.
|
|
Returns the first occurrence of one string in
another.
|
|
Returns a token from a string delimited by specified
characters.
|
|
Converts a string to upper
case.
|
For instance we consider the function STRSTR and see how we use it.....
sample text :- 6172171084 (Service - RPC) Status: Success, Effective Immediately
If you want to capture the above text and try to see if any telephone number & success word is appearing in that phrase, then we use STRSTR function.
Using web_reg_save_param("Confirmation") - Pull that phrase into parameter called confirmation and then use that to validate if mobile number and success message are coming in the server response.
strstr
char *
strstr( const char *
string1, const
char *
string2);Returns the first occurrence of one string in another.
string1 |
The string that is searched. |
string2 |
The string that is searched for in the first string.
|
strstr returns the first occurrence of one string in another
This is how we do it..........
// If the success message is not displayed, fail the transaction and exit iteration
if (
strstr(
lr_eval_string(
"{Confirmation}"),
"Success") <
1)
{
lr_error_message(
"***** Success Message not displayed ******");
lr_end_transaction(
"X_RPC_14_SubmitOrder",
LR_FAIL);
lr_exit(
LR_EXIT_ITERATION_AND_CONTINUE,
LR_FAIL);
}
// Dynamic Validation for mobile number
if (
strstr(
lr_eval_string(
"{Confirmation}"),
lr_eval_string(
"{mobile}")) ==
0)
{
lr_error_message(
"***** Dynamic Validation Failed for mobile number*****");
lr_end_transaction(
"X_RPC_14_SubmitOrder",
LR_FAIL);
lr_exit(
LR_EXIT_ITERATION_AND_CONTINUE,
LR_FAIL);
}
Example 1
This example uses
strstr to search for the word "dog" in the string,
str.
After
strstr returns the address,
position, the code then
calculates the word's place in
str by subtracting the address of the
start of the string from
position. This is the offset of the word "dog",
in bytes.
int offset;
char * position;
char * str = "The quick brown dog jumps over the lazy
fox";
char * search_str = "dog";
position = (char *)strstr(str, search_str);
// strstr has returned the address. Now calculate * the
offset from the beginning of str
offset = (int)(position - str + 1);
lr_output_message ("The string \"%s\" was found at position
%d", search_str, offset);
Output:
Action.c(14): The string "dog" was found at position
17
Example 2
The next example shows how
strstr can be used to parse file name
suffixes. The code checks the equality of the following two pointers:
-
The pointer returned by strstr after searching for the substring is
either null on failure, or the address of the first character of the file suffix
on success. Adding 4 moves the pointer to the end of the string.
-
The start of the string (path) plus its length, len. This is
also the end of the string.
If these 2 pointers are equal than
strstr has found the file suffix.
If not,
strstr has returned null.
char * path = "c:\\tmp\\xxx\\foo.ocx";
int len = strlen(path), filetype;
// Check the suffix of the file name to determine its
type
if ((char *)(strstr(path, ".dll") + 4) == (path +
len))
filetype = 1;
else if ((char *)(strstr(path, ".exe") + 4) == (path +
len))
filetype = 2;
else if ((char *)(strstr(path, ".tlb") + 4) == (path +
len))
filetype = 3;
else if ((char *)(strstr(path, ".ocx") + 4) == (path +
len))
filetype = 4;
else
filetype = 5;
lr_output_message ("type = %d", filetype);
Output:
Action.c(18): type = 4