String::Insert Method (Int32, String^)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Returns a new string in which a specified string is inserted at a specified index position in this instance.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

String^ Insert(
	int startIndex,
	String^ value


Type: System::Int32

The zero-based index position of the insertion.

Type: System::String^

The string to insert.

Return Value

Type: System::String^

A new string that is equivalent to this instance, but with value inserted at position startIndex.

Exception Condition

value is null.


startIndex is negative or greater than the length of this instance.

If startIndex is equal to the length of this instance, value is appended to the end of this instance.


This method does not modify the value of the current instance. Instead, it returns a new string in which value is inserted into the current instance.

For example, the return value of "abc".Insert(2, "XYZ") is "abXYZc".

The following example inserts a space character in the fourth character position (the character at index 3) of a string.

No code example is currently available or this language may not be supported.

The following console application prompts the users to enter one or more adjectives to describe two animals. It then calls the Insert method to insert the text entered by the user into a string.

using namespace System;

int main()
   String^ animal1 = "fox";
   String^ animal2 = "dog";
   String^ strTarget = String::Format( "The {0} jumped over the {1}.", animal1, animal2 );
   Console::WriteLine( "The original string is:{0}{1}{0}", Environment::NewLine, strTarget );
   Console::Write( "Enter an adjective (or group of adjectives) to describe the {0}: ==> ", animal1 );
   String^ adj1 = Console::ReadLine();
   Console::Write( "Enter an adjective (or group of adjectives) to describe the {0}: ==> ", animal2 );
   String^ adj2 = Console::ReadLine();
   adj1 = String::Concat( adj1->Trim(), " " );
   adj2 = String::Concat( adj2->Trim(), " " );
   strTarget = strTarget->Insert( strTarget->IndexOf( animal1 ), adj1 );
   strTarget = strTarget->Insert( strTarget->IndexOf( animal2 ), adj2 );
   Console::WriteLine( " {0}The final string is: {0} {1}", Environment::NewLine, strTarget );
// Output from the example might appear as follows:
//       The original string is:
//       The fox jumped over the dog.
//       Enter an adjective (or group of adjectives) to describe the fox: ==> bold
//       Enter an adjective (or group of adjectives) to describe the dog: ==> lazy
//       The final string is:
//       The bold fox jumped over the lazy dog.

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top