Open In App

Kth space-separated number from a given string

Last Updated : 23 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Given a string S consisting of space-separated integers, the task is to extract the Kth number present in the string.

Note: The string contains at least K numbers in it.

Examples:

Input: S = "12 13 15", K= 3
Output: 15
Explanation: The 3rd integer in the above string is 15.

Input: S = "10 20 30 40", K = 2
Output: 20
Explanation: The 2nd integer in the above string is 20.

Naive Approach: The simplest approach to solve the problem is to traverse the string and keep a count of spaces encountered. Once, K - 1 spaces are encountered, print the number up to the next space as the required answer.

Below is the implementation of the above approach:

C++
// C++ Program for the above approach

#include <iostream>
using namespace std;

// Function to print kth integer
// in a given string
void print_kth_string(string s, int K)
{
    // Size of the string
    int N = s.length();

    // Pointer for iteration
    int i;
    for (i = 0; i < N; i++) {
        // If space char found
        // decrement K
        if (s[i] == ' ')
            K--;

        // If K becomes 1, the next
        // string is the required one
        if (K == 1)
            break;
    }

    // Print the required number
    while (i++ < N && s[i] != ' ')
        cout << s[i];
}

// Driver Code
int main()
{
    // Given string
    string s("10 20 30 40");

    // Given K
    int K = 4;

    // Function call
    print_kth_string(s, K);
}
Java
// Java program for the above approach
import java.io.*;

class GFG{
 
// Function to print kth integer
// in a given string
static void print_kth_string(String s, int K)
{
    
    // Size of the string
    int N = s.length();
 
    // Pointer for iteration
    int i;
    
    for(i = 0; i < N; i++) 
    {
        
        // If space char found
        // decrement K
        if (s.charAt(i) == ' ')
            K--;
 
        // If K becomes 1, the next
        // string is the required one
        if (K == 1)
            break;
    }
 
    // Print the required number
    while (i++ < N - 1 && s.charAt(i) != ' ')
        System.out.print(s.charAt(i));
}
 
// Driver Code
public static void main (String[] args)
{
    
    // Given string
    String s = "10 20 30 40";
 
    // Given K
    int K = 4;
 
    // Function call
    print_kth_string(s, K);
}
}

// This code is contributed by sanjoy_62
Python3
# Python3 program for 
# the above approach

# Function to print kth integer
# in a given string
def print_kth_string(s, K):
  
    # Size of the string
    N = len(s);

    for i in range(0, N, 1):

        # If space char found
        # decrement K
        if (s[i] == ' '):
            K -= 1;

        # If K becomes 1, the next
        # string is the required one
        if (K == 1):
            break;

    # Print required number
    while (i < N):
        if(s[i] != ' '):
            print(s[i], end = "");
        i += 1;

# Driver Code
if __name__ == '__main__':
  
    # Given string
    s = "10 20 30 40";

    # Given K
    K = 4;

    # Function call
    print_kth_string(s, K);

# This code is contributed by Rajput-Ji 
C#
// C# program for the above approach  
using System;

class GFG{
 
// Function to print kth integer
// in a given string
static void print_kth_string(string s, int K)
{
    
    // Size of the string
    int N = s.Length;
 
    // Pointer for iteration
    int i;
    
    for(i = 0; i < N; i++)
    {
        
        // If space char found
        // decrement K
        if (s[i] == ' ')
            K--;
 
        // If K becomes 1, the next
        // string is the required one
        if (K == 1)
            break;
    }
 
    // Print the required number
    while (i++ < N - 1 && s[i] != ' ')
        Console.Write(s[i]);
}
 
// Driver Code
public static void Main ()
{
    
    // Given string
    string s = "10 20 30 40";
 
    // Given K
    int K = 4;
 
    // Function call
    print_kth_string(s, K);
}
}

// This code is contributed by sanjoy_62
JavaScript
<script>
// javascript program for the above approach

    // Function to print kth integer
    // in a given string
    function print_kth_string( s , K) {

        // Size of the string
        var N = s.length;

        // Pointer for iteration
        var i;

        for (i = 0; i < N; i++) {

            // If space char found
            // decrement K
            if (s.charAt(i) == ' ')
                K--;

            // If K becomes 1, the next
            // string is the required one
            if (K == 1)
                break;
        }

        // Print the required number
        while (i++ < N - 1 && s.charAt(i) != ' ')
            document.write(s.charAt(i));
    }

    // Driver Code
    

        // Given string
        var s = "10 20 30 40";

        // Given K
        var K = 4;

        // Function call
        print_kth_string(s, K);

// This code is contributed by umadevi9616 
</script>

Output: 
40

 

Time Complexity: O(N), where N is the length of the string.
Auxiliary Space: O(1)

Stringstream Approach: The idea is to use stringstream in C++ which associates a string object with a stream and allowing us to read from the string as if it were a stream (like cin). 

Below is the implementation of the above approach: 

C++
// C++ program for the above approach

#include <bits/stdc++.h>
using namespace std;

// Function to print Kth integer
// from a given string
void print_kth_string(string str, int K)
{
    // Split input into words
    // using stringstream
    stringstream iss(str);

    // Stores individual words
    string kth;

    // Extract words from stream
    while (iss >> kth && K) {
        K--;

        // If kth position
        // is reached
        if (K == 0) {
            cout << kth;
            break;
        }
    }
}

// Driver Code
int main()
{
    // Given string
    string s("10 20 30 40");

    // Given K
    int K = 4;

    // Function call
    print_kth_string(s, K);
}
Java
// Java program for 
// the above approach
import java.util.*;
class GFG{

// Function to print Kth integer
// from a given String
static void print_kth_String(String str, 
                             int K) 
{
  // Split input into words
  // using split
  String[] iss = str.split(" ");
  K--;
  
  System.out.print(iss[K]);
}

// Driver Code
public static void main(String[] args) 
{
  // Given String
  String s = ("10 20 30 40");

  // Given K
  int K = 4;

  // Function call
  print_kth_String(s, K);
}
}

// This code is contributed by Rajput-Ji 
Python3
# Python3 program for the above approach

# Function to print Kth integer
# from a given string
def print_kth_string(str1, K):
    
    # Split input into words
    # using stringstream
    st = str1.split(" ")

    # Stores individual words
    print(st[K - 1])

# Driver Code
if __name__ == '__main__':
    
    # Given string
    s = "10 20 30 40"

    # Given K
    K = 4

    # Function call
    print_kth_string(s, K)

# This code is contributed by SURENDRA_GANGWAR
C#
// C# program for 
// the above approach
using System;
class GFG{

// Function to print Kth integer
// from a given String
static void print_kth_String(String str, 
                             int K) 
{
  // Split input into words
  // using split
  String[] iss = str.Split(' ');
  
  K--;  
  Console.Write(iss[K]);
}

// Driver Code
public static void Main(String[] args) 
{
  // Given String
  String s = ("10 20 30 40");

  // Given K
  int K = 4;

  // Function call
  print_kth_String(s, K);
}
}

// This code is contributed by Rajput-Ji 
JavaScript
// Function to print Kth integer from a given string
function print_kth_String(str, K) {
    // Split input into words using split
    let iss = str.split(" ");
    K--;
    console.log(iss[K]);
}

// Driver Code
let s = "10 20 30 40";
let K = 4;

// Function call
print_kth_String(s, K);

Output
40


Time Complexity: O(N), where N is the length of the string.
Auxiliary Space: O(1)

Built-in String Functions based Approach: The idea is to use strtok() function to extract the string at the key. Use c_str() function to get the char pointer reference of an array of the characters.

Below is the implementation of the above approach:

C++
// C++ program of the above approach

#include <cstring>
#include <iostream>
using namespace std;

// Function to extract integer at key
// position in the given string
void print_kth_string(string str, int K)
{
    // strtok(): Extracts the number at key
    // c_str(): Type cast string to char*
    char* s = strtok((char*)str.c_str(),
                     " ");

    while (K > 1) {
        // Get the token at position -> key
        s = strtok(NULL, " ");
        K--;
    }

    // Print the kth integer
    cout << string(s) << " ";
}

// Driver Code
int main()
{
    // Given string
    string s("10 20 30 40");

    // Given K
    int K = 2;

    // Function call
    print_kth_string(s, K);

    return 0;
}
Java
// Java program of the 
// above approach
import java.util.*;
class GFG{

// Function to extract integer 
// at key position in the given String
static void print_kth_String(String str, 
                             int K)
{
  // StringTokenizer(): Extracts 
  // the number at key
  // c_str(): Type cast 
  // String to char*
  StringTokenizer st = 
        new StringTokenizer(str);
  int count = 1;
  
  while (st.hasMoreTokens() && K > 0 ) 
  {
    if(count == K)
      System.out.println(st.nextToken());
    count++;
    st.nextToken();
  }
}

// Driver Code
public static void main(String[] args)
{
  // Given String
  String s = ("10 20 30 40");

  // Given K
  int K = 2;

  // Function call
  print_kth_String(s, K);
}
}

// This code is contributed by 29AjayKumar 
Python3
# Python code of the above approach

import re

# Function to extract integer at key
# position in the given string
def print_kth_string(string, K):
    # split the string using space as a separator
    s = re.split(" ", string)

    # return the Kth element of the split string
    return s[K-1]

# Driver Code
if __name__ == '__main__':
    # Given string
    s = "10 20 30 40"

    # Given K
    K = 2

    # Function call
    print(print_kth_string(s, K))
C#
// C# program of the 
// above approach
using System;
class GFG{

// Function to extract integer 
// at key position in the given String
static void print_kth_String(String str, 
                             int K)
{
  // StringTokenizer(): Extracts 
  // the number at key
  // c_str(): Type cast 
  // String to char*
  String[] iss = str.Split(' ');
  
  K--;  
  Console.Write(iss[K]);
}

// Driver Code
public static void Main(String[] args)
{
  // Given String
  String s = ("10 20 30 40");

  // Given K
  int K = 2;

  // Function call
  print_kth_String(s, K);
}
}

// This code is contributed by Rajput-Ji
JavaScript
// Function to extract integer at key position in the given string
function print_kth_string(str, K) {
    // Split input string into words using split
    let words = str.split(" ");

    // Print the Kth integer
    console.log(words[K-1]);
}

// Driver Code
let s = "10 20 30 40";
let K = 2;

// Function call
print_kth_string(s, K);

Output
20 

Time Complexity: O(N), where N is the length of the string.
Auxiliary Space: O(1)


Article Tags :
Practice Tags :

Similar Reads