Basic String Operations with Implementation
Last Updated :
07 Oct, 2024
In this post, we will look into some of the basic String operations such as:
Let us consider the basic String operations one by one.
Accessing characters by index in a string.
To access any character in a String, we need:
- A non-empty string (say “s”)
- A position/index of the character from where it is to be accessed. (say “k”)
Using these two, the character can be easily accessed using the below syntax:
char ch = s[k];
OR
char ch = s.charAt(k);
Below is the implementation of the above approach:
C++
// CPP code for accessing an element by index
#include <iostream>
#include <string>
using namespace std;
// Function to demonstrate insert
char accessCharByIndex(string &s, int k)
{
// return the character at Kth index
// in the string str
return s[k];
}
// Driver code
int main()
{
string s("GeeksforGeeks ");
int k = 4;
cout << accessCharByIndex(s, k) << endl;
return 0;
}
C
#include <stdio.h>
#include <string.h>
// Function to demonstrate accessing character by index
char accessCharByIndex(char* s, int k)
{
// Return the character at the kth index in the string
return s[k];
}
// Driver code
int main()
{
char s[] = "GeeksforGeeks ";
int k = 4;
printf("%c\n", accessCharByIndex(s, k));
return 0;
}
Java
public class GFG {
// Function to demonstrate accessCharByIndex
public static char accessCharByIndex(String s, int k) {
// Return the character at the k-th index in the string s
return s.charAt(k);
}
// Driver code
public static void main(String[] args) {
String s = "GeeksforGeeks ";
int k = 4;
System.out.println(accessCharByIndex(s, k));
}
}
Python
# Function to access an element by index
def access_char_by_index(s, k):
# Return the character at the kth index in the string s
return s[k]
# Driver code
if __name__ == "__main__":
s = "GeeksforGeeks "
k = 4
print(access_char_by_index(s, k))
C#
using System;
class Program {
// Function to access a character by index
static char AccessCharByIndex(string s, int k)
{
// Return the character at the k-th index
return s[k];
}
static void Main()
{
string s = "GeeksforGeeks ";
int k = 4;
Console.WriteLine(AccessCharByIndex(s, k));
}
}
JavaScript
// Function to demonstrate access by index
function accessCharByIndex(s, k) {
// Return the character at the kth index in the string str
return s[k];
}
// Driver code
let s = "GeeksforGeeks ";
let k = 4;
console.log(accessCharByIndex(s, k));
Inserting Character/String into an String.
To insert any Character/String in a String, we need:
- A character/string that is to be inserted in the string (say “ch”)
- A position/index of the Character/String where it is to be inserted. (say “k”)
Below is the implementation of the above approach:
C++
// CPP code for Inserting character/string into an String.
#include <iostream>
#include <string>
using namespace std;
// Function to demonstrate insert
void insertDemo(string &s, string ch, int k)
{
// Inserts ch at kth index of str
s.insert(k, ch);
cout << "Modified String : " << s << endl;
}
// Driver code
int main()
{
string s("GeeksGeeks ");
string ch = "for";
int k = 5;
cout << "Original String : " << s << endl;
insertDemo(s, ch, k);
return 0;
}
C
#include <stdio.h>
#include <string.h>
void insertDemo(char* s, const char* ch, int k) {
int len1 = strlen(s);
int len2 = strlen(ch);
// Shift characters to the right to make space for ch
for (int i = len1; i >= k; i--) {
s[i + len2] = s[i];
}
// Insert ch at kth index of str
for (int i = 0; i < len2; i++) {
s[k + i] = ch[i];
}
printf("Modified String: %s\n", s);
}
int main() {
char s[] = "GeeksGeeks ";
char ch[] = "for";
int k = 5;
printf("Original String: %s\n", s);
insertDemo(s, ch, k);
return 0;
}
Java
public class Main {
public static void main(String[] args) {
String s = "GeeksGeeks ";
String ch = "for";
int k = 5;
System.out.println("Original String: " + s);
insertDemo(s, ch, k);
}
// Function to demonstrate insert
public static void insertDemo(String s, String ch, int k) {
// Inserts ch at kth index of str
StringBuilder sb = new StringBuilder(s);
sb.insert(k, ch);
String modifiedString = sb.toString();
System.out.println("Modified String: " + modifiedString);
}
}
Python
# Python program for the above approach
# Function to demonstrate insert
def insert_demo(s, ch, k):
# Inserts ch at kth index of s
modified_string = s[:k] + ch + s[k:]
print("Modified String:", modified_string)
# Driver code
if __name__ == "__main__":
s = "GeeksGeeks "
ch_to_insert = "for"
index_to_insert = 5
print("Original String:", s)
insert_demo(s, ch_to_insert, index_to_insert)
C#
using System;
class Program
{
// Function to demonstrate insert
static string InsertDemo(string s, string ch, int k)
{
// Inserts ch at kth index of str
return s.Insert(k, ch);
}
// Driver code
static void Main()
{
string s = "GeeksGeeks ";
string ch = "for";
int k = 5;
Console.WriteLine("Original String: " + s);
string modifiedString = InsertDemo(s, ch, k);
Console.WriteLine("Modified String: " + modifiedString);
}
}
JavaScript
// JavaScript equivalent of the given Java code
// Function to demonstrate insert
function insertDemo(s, ch, k)
{
// Inserts ch at kth index of s
let modifiedString = s.slice(0, k) + ch + s.slice(k);
console.log("Modified String: " + modifiedString);
}
// Call the main function
let s = "GeeksGeeks ";
let ch = "for";
let k = 5;
console.log("Original String: " + s);
insertDemo(s, ch, k);
OutputOriginal String : GeeksGeeks
Modified String : GeeksforGeeks
Modifying character in String
To modify any Character in a String, we need:
- A character that is to replaced in the string (say “ch”)
- A position/index of the Character where it is to be replaced at. (say “k”)
Below is the implementation of the above approach:
C++
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s = "Geeks Gor Geeks";
int index = 6;
char ch = 'F';
cout << "Original String = " << s << endl;
s.replace(index, 1, 1, ch);
cout << "Modified String = " << s << endl;
return 0;
}
C
#include <stdio.h>
#include <string.h>
int main()
{
// Define the string
char s[] = "Geeks Gor Geeks";
// Define the index
int index = 6;
// Define the character
char ch = 'F';
// Print the original string
printf("Original String = %s\n", s);
// Modify the string
s[index] = ch;
// Print the modified string
printf("Modified String = %s\n", s);
return 0;
}
Java
public class GFG {
public static void main(String args[])
{
// Get the String
String s = "Geeks Gor Geeks";
// Get the index
int index = 6;
// Get the character
char ch = 'F';
// Print the original string
System.out.println("Original String = " + s);
s = s.substring(0, index) + ch
+ s.substring(index + 1);
// Print the modified string
System.out.println("Modified String = " + s);
}
}
Python
# Function to replace a character at a specific index in a string
def replace_ch(s, index, ch):
# Convert string to list of characters to allow modification
lst = list(s)
# Replace character at the specified index
lst[index] = ch
# Convert back to string and return
return ''.join(lst)
# Entry point of the program
if __name__ == "__main__":
# Original string
s = "Geeks Gor Geeks"
# Index to replace character
index = 6
# New character
ch = 'F'
# Print original string
print("Original String =", s)
# Replace character at the specified index
s = replace_ch(s, index, ch)
# Print modified string
print("Modified String =", s)
C#
using System;
public class GFG
{
public static void Main()
{
// Get the String
string str = "Geeks Gor Geeks";
// Get the index
int index = 6;
// Get the character
char ch = 'F';
// Print the original string
Console.WriteLine("Original String = " + str);
// Modify the string
str = str.Substring(0, index) + ch + str.Substring(index + 1);
// Print the modified string
Console.WriteLine("Modified String = " + str);
}
}
JavaScript
let str = "Geeks Gor Geeks"; // Get the string
let index = 6; // Get the index
let ch = 'F'; // Get the character
console.log("Original String = " + str); // Print the original string
// Modify the string
str = str.substr(0, index) + ch + str.substr(index + 1);
console.log("Modified String = " + str); // Print the modified string
OutputOriginal String = Geeks Gor Geeks
Modified String = Geeks For Geeks
Deletion of character in String
To delete any Character in a String, we need:
- A character that is to deleted in the string (say “ch”)
Below is the implementation of the above approach:
C++
#include <iostream>
using namespace std;
void removeChar(string &s, char c)
{
int j = 0;
for (int i = 0; i < s.size(); i++) {
if (s[i] != c) {
// Move other characters
s[j++] = s[i];
}
}
// j is new size of the string
s.resize(j);
}
int main()
{
string s = "geeksforgeeks";
removeChar(s, 'g');
cout << s; // Output the modified string
return 0;
}
C
#include <stdio.h>
#include <string.h>
void removeChar(char* s, char c) {
int i, j, n = strlen(s);
for (i = j = 0; i < n; i++) {
if (s[i] != c) {
s[j++] = s[i];
}
}
s[j] = '\0';
}
int main() {
char s[] = "geeksforgeeks";
removeChar(s, 'g');
printf("%s", s);
return 0;
}
Java
public class GfG {
// Function to remove a particular character
// from a StringBuilder
// Parameters:
// - s: the StringBuilder from which
// the character will be removed
// - c: the character to be removed
public static void removeChar(StringBuilder s, char c) {
int j = 0;
// Loop through the StringBuilder
for (int i = 0; i < s.length(); i++) {
// If the current character is not the one to be removed
if (s.charAt(i) != c) {
// Move the character to the position indicated by j
s.setCharAt(j++, s.charAt(i));
}
}
// Delete the remaining characters
s.delete(j, s.length());
}
public static void main(String[] args) {
// Input string as a StringBuilder
StringBuilder s = new StringBuilder("geeksforgeeks");
// Remove character 'g' from the string
removeChar(s, 'g');
// Print the modified string
System.out.println(s);
}
}
Python
def removeChar(s, c):
# Use list comprehension to filter
# out the target character
return ''.join([ch for ch in s if ch != c])
if __name__ == "__main__":
s = "geeksforgeeks"
s = removeChar(s, 'g')
print(s)
JavaScript
// JavaScript program for the above approach
// Function to remove a particular character from a character array
// Parameters:
// - s: the character array from which the character will be removed
// - c: the character to be removed
function removeChar(s, c) {
// Initialize a pointer j to keep track of the position where characters are being moved
let j = 0;
// Loop through the character array
for (let i = 0; i < s.length; i++) {
// If the current character is not the one to be removed
if (s[i] !== c) {
// Move the character to the position indicated by j
s[j++] = s[i];
}
}
// Fill the remaining positions with null characters ('\0')
while (j < s.length) {
s[j++] = '\0';
}
}
// Input string as a character array
let s = "geeksforgeeks".split('');
// Remove character 'g' from the string
removeChar(s, 'g');
// Print the modified string
console.log(s.join(''));
// This code is contributed by Susobhan Akhuli
Concatenating strings (combining multiple strings into one).
To concatenate any String to a String, we need:
- A string that is to appended with the string (say “ch”)
Below is the implementation of the above approach:
C++
// C++ Program for string
// concatenation using '+' operator
#include <iostream>
using namespace std;
// Driver code
int main()
{
string init("this is init");
string add(" added now");
// Appending the string.
init = init + add;
cout << init << endl;
return 0;
}
C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char init[] = "this is init";
char add[] = " added now";
char* result = (char*)malloc(strlen(init) + strlen(add) + 1);
strcpy(result, init);
strcat(result, add);
printf("%s\n", result);
free(result);
return 0;
}
Java
public class Main {
public static void main(String[] args) {
String init = "this is init";
String add = " added now";
// Appending the string.
init = init + add;
System.out.println(init);
}
}
Python
def main():
init = "this is init"
add = " added now"
# Concatenate strings
result = init + add
# Print the result
print(result)
# Call the main function
if __name__ == "__main__":
main()
JavaScript
// Define the main function
function main() {
let init = "this is init";
let add = " added now";
// Appending the string.
init = init + add;
console.log(init);
}
// Call the main function
main();
Outputthis is init added now
Finding the length/size of a string
To find the length of the String, we need:
- A string for which the length/size is to be determined (say “str”)
Below is the implementation of the above approach:
C++
// C++ program to find length
// of a string
#include <iostream>
#include <string.h>
using namespace std;
// Driver code
int main()
{
// String obj
string str = "GeeksforGeeks";
// size of string object using size() method
cout << str.size() << endl;
return 0;
}
C
#include <stdio.h>
#include <string.h>
int main()
{
// String
char str[] = "GeeksforGeeks";
// Length of string using strlen() function
int length = strlen(str);
printf("%d\n", length);
return 0;
}
Java
public class Main {
public static void main(String[] args)
{
// String object
String str = "GeeksforGeeks";
// Size of string object using length() method
System.out.println(str.length());
}
}
// This code is contributed by Utkarsh
Python
# Main function
def main():
# String object
str = "GeeksforGeeks"
# Size of string object using len() function
print(len(str))
# Calling the main function
if __name__ == "__main__":
main()
JavaScript
// JavaScript program to find length
// of a string
// String
let str = "GeeksforGeeks";
// size of string using length property
console.log(str.length);
Comparing Strings for Equality
C++
// CPP code perform relational
// operation using compare function
#include <iostream>
using namespace std;
void compareFunction(string &s1, string &s2)
{
// comparing both using inbuilt function
int x = s1.compare(s2);
if (x != 0) {
cout << s1 << " is not equal to "
<< s2 << endl;
if (x > 0)
cout << s1 << " is greater than "
<< s2 << endl;
else
cout << s2 << " is greater than "
<< s1 << endl;
}
else
cout << s1 << " is equal to " << s2 << endl;
}
// Driver Code
int main()
{
string s1("geeks");
string s2("forGeeks");
compareFunction(s1, s2);
string s3("geeks");
string s4("geeks");
compareFunction(s3, s4);
return 0;
}
C
#include <stdio.h>
#include <string.h>
void compareStrings(char *s1, char *s2) {
// comparing both using inbuilt function
int x = strcmp(s1, s2);
if (x != 0) {
printf("%s is not equal to %s\n", s1, s2);
if (x > 0) {
printf("%s is greater than %s\n", s1, s2);
} else {
printf("%s is greater than %s\n", s2, s1);
}
} else {
printf("%s is equal to %s\n", s1, s2);
}
}
int main() {
compareStrings("geeks", "forGeeks");
compareStrings("geeks", "geeks");
return 0;
}
Java
public class RelationalOps {
public static void compareStrings(String s1, String s2) {
// comparing both using inbuilt function
int x = s1.compareTo(s2);
if (x != 0) {
System.out.println(s1 + " is not equal to " + s2);
if (x > 0) {
System.out.println(s1 + " is greater than " + s2);
} else {
System.out.println(s2 + " is greater than " + s1);
}
} else {
System.out.println(s1 + " is equal to " + s2);
}
}
public static void main(String[] args) {
compareStrings("geeks", "forGeeks");
compareStrings("geeks", "geeks");
}
}
Python
def compare_strings(s1, s2):
# comparing both using inbuilt comparison
if s1 != s2:
print("s1 is not equal to s2")
if s1 > s2:
print("s1 is greater than s2")
else:
print("s2 is greater than s1")
else:
print("s1 is equal to s2")
# Driver code
compare_strings("geeks", "forGeeks")
compare_strings("geeks", "geeks")
JavaScript
function compareStrings(s1, s2) {
// comparing both using inbuilt comparison
if (s1 !== s2) {
console.log(`${s1} is not equal to ${s2}`);
if (s1 > s2) {
console.log(`${s1} is greater than ${s2}`);
} else {
console.log(`${s2} is greater than ${s1}`);
}
} else {
console.log(`${s1} is equal to ${s2}`);
}
}
// Driver code
compareStrings("geeks", "forGeeks");
compareStrings("geeks", "geeks");
Similar Reads
Basic Operations in Stack Data Structure with Implementations
In order to make manipulations in a stack, there are certain operations provided to us for Stack, which include: push() to insert an element into the stackpop() to remove an element from the stacktop() Returns the top element of the stack.isEmpty() returns true if the stack is empty else false.size(
13 min read
Implement *, - and / operations using only + arithmetic operator
Given two numbers, perform multiplication, subtraction, and division operations on them, using '+' arithmetic operator only. Operations can be performed as follows: Subtraction :- a - b = a + (-1)*b. Multiplication :- a * b = a + a + a ... b times. Division :- a / b = continuously subtract b from a
12 min read
Expression Trees Using Classes in C++ with Implementation
Prerequisite: Expression Tree The expression tree is a binary tree in which each internal node corresponds to the operator and each leaf node corresponds to the operand so for example expression tree for 3 + ((5+9)*2) would be: In expression trees, leaf nodes are operands and non-leaf nodes are oper
4 min read
Stack implementation in C++
Stack is the fundamental data structures used in the computer science to the store collections of the objects. It can operates on the Last In, First Out (LIFO) principle where the most recently added the object is the first one to be removed. It can makes the stacks highly useful in the situations w
4 min read
Basic Signal Operations
Basic signal operations are nothing but signal manipulation or modification tools that are used in signal processing and analysis. It helps to understand the signals in different situations. These operations allow the modification and enhancement of signals for specific applications. In this article
10 min read
Assignment Operators in Programming
Assignment operators in programming are symbols used to assign values to variables. They offer shorthand notations for performing arithmetic operations and updating variable values in a single step. These operators are fundamental in most programming languages and help streamline code while improvin
7 min read
Solidity - Assignment Operators
Solidity is a high-level, statically-typed programming language for Ethereum smart contracts. Python, JavaScript, and C++ impact it. Solidity has several variable and value assignment operators. Solidity supports the following types of operators: Simple Assignment Operator.Arithmetic Assignment Oper
5 min read
Matrix in R - Arithmetic Operations
Arithmetic operations include addition (+), subtraction (-), multiplication(*), division (/) and modulus(%). In this article we are going to see the matrix creation and arithmetic operations on the matrices in R programming language. ApproachCreate first matrix Syntax: matrix_name <- matrix(data
3 min read
Arithmetic Operators in Solidity
Arithmetic operators are used to perform arithmetic or mathematical operations. Solidity has the following types of arithmetic operators: Addition: The addition operator takes two operands and results in a sum of these operands. It is denoted by +.Subtraction: The subtraction operator takes two oper
2 min read
Implementation of Restoring Division Algorithm for unsigned integer
In the previous article, we have already discussed the Restoring Division Algorithm. In this article, we will discuss the implementation of this algorithm. Restoring Division Algorithm is used to divide two unsigned integers. This algorithm is used in Computer Organization and Architecture. This alg
14 min read