Program to replace every space in a string with hyphen
Last Updated :
05 Apr, 2023
Given a string, the task is to replace all the spaces between the words with a hyphen character '-'.
Examples:
Input: str = "Geeks for Geeks."
Output: Geeks-for-Geeks.
Input: str = "A computer science portal for geeks"
Output: A-computer-science-portal-for-geeks
Approach:
- Traverse the whole string character by character.
- If the character is a space, replace it with the hyphen '-'.
Below is the implementation of the above approach:
C++
// C++ program to replace space with -
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
// Get the String
string str = "A computer science portal for geeks";
// Traverse the string character by character.
for (int i = 0; i < str.length(); ++i) {
// Changing the ith character
// to '-' if it's a space.
if (str[i] == ' ') {
str[i] = '-';
}
}
// Print the modified string.
cout << str << endl;
return 0;
}
Java
// Java program to replace space with -
class GFG
{
// Function to replace Space with -
static String replaceSpace(String str)
{
String s = "";
// Traverse the string character by character.
for (int i = 0; i < str.length(); ++i) {
// Changing the ith character
// to '-' if it's a space.
if (str.charAt(i) == ' ')
s += '-';
else
s += str.charAt(i);
}
// return the modified string.
return s;
}
public static void main(String []args)
{
// Get the String
String str = "A computer science portal for geeks";
System.out.println(replaceSpace(str));
}
}
Python3
# Python 3 program to replace space with -
# Driver Code
if __name__ == '__main__':
# Get the String
str = "A computer science portal for geeks"
# Traverse the string character by character.
for i in range(0, len(str), 1):
# Changing the ith character
# to '-' if it's a space.
if (str[i] == ' '):
str = str.replace(str[i], '-')
# Print the modified string.
print(str)
# This code is contributed by
# Surendra_Gangwar
C#
// C# program to replace space with -
using System;
public class GFG
{
// Function to replace Space with -
static String replaceSpace(String str)
{
String s = "";
// Traverse the string character by character.
for (int i = 0; i < str.Length; ++i) {
// Changing the ith character
// to '-' if it's a space.
if (str[i] == ' ')
s += '-';
else
s += str[i];
}
// return the modified string.
return s;
}
public static void Main()
{
// Get the String
String str = "A computer science portal for geeks";
Console.Write(replaceSpace(str));
}
}
// This code is contributed by 29AjayKumar
PHP
<?php
// PHP program to replace space with -
// Get the String
$str = "A computer science portal for geeks";
// Traverse the string character by character.
for ($i = 0; $i < strlen($str); ++$i)
{
// Changing the ith character
// to '-' if it's a space.
if ($str[$i] == ' ')
{
$str[$i] = '-';
}
}
// Print the modified string.
echo $str . "\n";
// This code is contributed
// by Akanksha Rai
JavaScript
<script>
// JavaScript program to replace space with -
// Get the String
var str = "A computer science portal for geeks";
var newStr = str.split("");
// Traverse the string character by character.
for (var i = 0; i < newStr.length; ++i) {
// Changing the ith character
// to '-' if it's a space.
if (newStr[i] === " ") {
newStr[i] = "-";
}
}
// Print the modified string.
document.write(newStr.join("") + "<br>");
</script>
OutputA-computer-science-portal-for-geeks
Complexity Analysis:
- Time Complexity: O(N)
- Auxiliary Space: O(1)
Method #2: Using built-in methods :
- As all the words in a sentence are separated by spaces.
- We have to split the sentence by spaces using built-in methods
- We split all the words by spaces and store them in a list.
- Join the list using '-' and store in a string
- Print the string
Below is the implementation of the above approach:
C++
// C++ program for the above approach
#include <iostream>
#include <string>
using namespace std;
string printHyphen(string str)
{
// Split by space and converting
// String to list and
for(int i=0; i<str.length(); i++)
{
if(str[i] == ' ')
str[i] = '-';
}
return str;
}
// Driver code
int main()
{
string str = "Text contains malayalam and level words";
cout << printHyphen(str);
return 0;
}
// This code is contributed by codebraxnzt
Java
// Java implementation of the above approach
import java.util.*;
class GFG
{
static String printHyphen(String string)
{
// Split by space and converting
// String to list and
string = string.replace(' ', '-');
// returning the string
return string;
}
// Driver code
public static void main(String[] args)
{
String string = "Text contains malayalam and level words";
System.out.print(printHyphen(string));
}
}
// This code is contributed by gauravrajput1
Python3
# Python program for the above approach
def printHyphen(string):
# Split by space and converting
# String to list and
lis = list(string.split(" "))
# joining the list and storing in string
string = '-'.join(lis)
# returning the string
return string
# Driver code
string = "Text contains malayalam and level words"
print(printHyphen(string))
# This code is contributed by vikkycirus
C#
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
// C# program for the above approach
class HelloWorld {
public static string printHyphen(string s)
{
// Split by space and converting
// String to list and
string[] str = s.Split(' ');
string res = string.Join("-", str);
return res;
}
// Driver program to test above function
static void Main() {
string str = "Text contains malayalam and level words";
Console.WriteLine(printHyphen(str));
}
}
// The code is contributed by Nidhi goel.
JavaScript
<script>
// JavaScript program for the above approach
function printHyphen(string){
// Split by space and converting
// String to list and
var lis = string.split(" ")
// joining the list and storing in string
string = lis.join("-");
// returning the string
return string;
}
// Driver code
var string = "Text contains malayalam and level words";
document.write(printHyphen(string));
</script>
OutputText-contains-malayalam-and-level-words
Complexity Analysis:
- Time Complexity: O(n)
- Auxiliary Space: O(n)