Count occurrences of a word in string
Last Updated :
02 May, 2025
Given a two strings s and word. The task is to count the number of occurrences of the string word in the string s.
Note: The string word should appear in s as a separate word, not as a substring within other words.
Examples:
Input: s = "GeeksforGeeks A computer science portal for geeks", word = "portal"
Output: 1
Explanation: The word "portal" appears once as a separate word in the string.
Input: s = "Learning learn learners learned learningly", word = "learn"
Output: 1
Explanation: The word "learn" appears exactly once as a separate word. Words like "learners", "learned", and "learningly" contain "learn" as a substring, but do not count as exact word matches.
Input: s = "GeeksforGeeks A computer science portal for geeks", word = "technical"
Output: 0
[Approach 1] Split the String and Count - O(n) Time and O(n) Space
The idea is to split the string by forming each word character by character while traversing the string. The thought process is that when we encounter a space, it signals the end of a word, so we compare it to the target word. If it matches, we increase the count, and then reset to form the next word. Finally, we also check the last word, since it may not end with a space.
C++
// C++ program to count occurrences of a word
// by splitting the string and counting
#include <bits/stdc++.h>
using namespace std;
// Function to count occurrences of word in s
int countOccurrences(string s, string word) {
int count = 0;
string curr = "";
for (int i = 0; i < s.length(); i++) {
// If current char is space,
// check the built word
if (s[i] == ' ') {
if (curr == word) {
count++;
}
// Reset current word
curr = "";
}
// Else keep building the word
else {
curr += s[i];
}
}
// Check the last word (after loop ends)
if (curr == word) {
count++;
}
return count;
}
// Driver code
int main() {
string s = "GeeksforGeeks A computer science portal for geeks";
string word = "portal";
// Call function and print result
int res = countOccurrences(s, word);
cout << res << endl;
return 0;
}
Java
// Java program to count occurrences of a word
// by splitting the string and counting
class GfG {
// Function to count occurrences of word in s
static int countOccurrences(String s, String word) {
int count = 0;
String curr = "";
for (int i = 0; i < s.length(); i++) {
// If current char is space,
// check the built word
if (s.charAt(i) == ' ') {
if (curr.equals(word)) {
count++;
}
// Reset current word
curr = "";
}
// Else keep building the word
else {
curr += s.charAt(i);
}
}
// Check the last word (after loop ends)
if (curr.equals(word)) {
count++;
}
return count;
}
// Driver code
public static void main(String[] args) {
String s = "GeeksforGeeks A computer science portal for geeks";
String word = "portal";
// Call function and print result
int res = countOccurrences(s, word);
System.out.println(res);
}
}
Python
# Python program to count occurrences of a word
# by splitting the string and counting
def countOccurrences(s, word):
count = 0
curr = ""
for i in range(len(s)):
# If current char is space,
# check the built word
if s[i] == ' ':
if curr == word:
count += 1
# Reset current word
curr = ""
# Else keep building the word
else:
curr += s[i]
# Check the last word (after loop ends)
if curr == word:
count += 1
return count
if __name__ == "__main__":
s = "GeeksforGeeks A computer science portal for geeks"
word = "portal"
# Call function and print result
res = countOccurrences(s, word)
print(res)
C#
// C# program to count occurrences of a word
// by splitting the string and counting
using System;
class GfG {
// Function to count occurrences of word in s
static int countOccurrences(string s, string word) {
int count = 0;
string curr = "";
for (int i = 0; i < s.Length; i++) {
// If current char is space,
// check the built word
if (s[i] == ' ') {
if (curr == word) {
count++;
}
// Reset current word
curr = "";
}
// Else keep building the word
else {
curr += s[i];
}
}
// Check the last word (after loop ends)
if (curr == word) {
count++;
}
return count;
}
// Driver code
public static void Main() {
string s = "GeeksforGeeks A computer science portal for geeks";
string word = "portal";
// Call function and print result
int res = countOccurrences(s, word);
Console.WriteLine(res);
}
}
JavaScript
// JavaScript program to count occurrences of a word
// by splitting the string and counting
function countOccurrences(s, word) {
let count = 0;
let curr = "";
for (let i = 0; i < s.length; i++) {
// If current char is space,
// check the built word
if (s[i] === ' ') {
if (curr === word) {
count++;
}
// Reset current word
curr = "";
}
// Else keep building the word
else {
curr += s[i];
}
}
// Check the last word (after loop ends)
if (curr === word) {
count++;
}
return count;
}
// Driver code
let s = "GeeksforGeeks A computer science portal for geeks";
let word = "portal";
// Call function and print result
let res = countOccurrences(s, word);
console.log(res);
[Approach 2] Using Inbuilt Split Function - O(n) Time and O(n) Space
The idea is to split the input string into individual words using the space delimiter and then compare each word with the given target word. This approach relies on the observation that using built-in split functions makes it easy to isolate complete words without worrying about manual parsing. We then traverse the resulting array and increment a counter whenever there's a match with the target.
C++
// C++ program to count occurrences of a word
// using inbuilt string split
#include <bits/stdc++.h>
using namespace std;
// Function to count occurrences of word in s
int countOccurrences(string s, string word) {
int count = 0;
vector<string> tokens;
// Use stringstream to split the string
stringstream ss(s);
string token;
// Store each word into the vector
while (ss >> token) {
tokens.push_back(token);
}
// Count matching words
for (int i = 0; i < tokens.size(); i++) {
if (tokens[i] == word) {
count++;
}
}
return count;
}
// Driver code
int main() {
string s = "GeeksforGeeks A computer science portal for geeks";
string word = "portal";
int res = countOccurrences(s, word);
cout << res << endl;
return 0;
}
Java
// Java program to count occurrences of a word
// using inbuilt string split
class GfG {
// Function to count occurrences of word in s
static int countOccurrences(String s, String word) {
int count = 0;
// Use split function to tokenize string
String[] tokens = s.split(" ");
// Count matching words
for (int i = 0; i < tokens.length; i++) {
if (tokens[i].equals(word)) {
count++;
}
}
return count;
}
// Driver code
public static void main(String[] args) {
String s = "GeeksforGeeks A computer science portal for geeks";
String word = "portal";
int res = countOccurrences(s, word);
System.out.println(res);
}
}
Python
# Python program to count occurrences of a word
# using inbuilt string split
def countOccurrences(s, word):
count = 0
# Use split function to tokenize string
tokens = s.split(" ")
# Count matching words
for i in range(len(tokens)):
if tokens[i] == word:
count += 1
return count
# Driver code
if __name__ == "__main__":
s = "GeeksforGeeks A computer science portal for geeks"
word = "portal"
res = countOccurrences(s, word)
print(res)
C#
// C# program to count occurrences of a word
// using inbuilt string split
using System;
class GfG {
// Function to count occurrences of word in s
static int countOccurrences(string s, string word) {
int count = 0;
// Use Split function to tokenize string
string[] tokens = s.Split(' ');
// Count matching words
for (int i = 0; i < tokens.Length; i++) {
if (tokens[i] == word) {
count++;
}
}
return count;
}
// Driver code
static void Main() {
string s = "GeeksforGeeks A computer science portal for geeks";
string word = "portal";
int res = countOccurrences(s, word);
Console.WriteLine(res);
}
}
JavaScript
// JavaScript program to count occurrences of a word
// using inbuilt string split
function countOccurrences(s, word) {
let count = 0;
// Use split function to tokenize string
let tokens = s.split(" ");
// Count matching words
for (let i = 0; i < tokens.length; i++) {
if (tokens[i] === word) {
count++;
}
}
return count;
}
// Driver code
let s = "GeeksforGeeks A computer science portal for geeks";
let word = "portal";
let res = countOccurrences(s, word);
console.log(res);
[Approach 3] Using Regular Expression - O(n) Time and O(1) Space
The idea is to use regular expressions to directly identify complete words in the string. We define a pattern \b\w+\b that matches only separate words by recognizing word boundaries. Instead of splitting or manually parsing, we iterate through all matches and compare each to the target word, counting the exact matches.
C++
// C++ program to count occurrences of a word
// using regex
#include <bits/stdc++.h>
using namespace std;
// Function to count occurrences of word in s
int countOccurrences(string s, string word) {
int count = 0;
// Use regex to find words
regex re("\\b\\w+\\b");
auto words_begin = sregex_iterator(s.begin(), s.end(), re);
auto words_end = sregex_iterator();
// Count matching words
for (auto it = words_begin; it != words_end; ++it) {
if (it->str() == word) {
count++;
}
}
return count;
}
// Driver code
int main() {
string s = "GeeksforGeeks A computer science portal for geeks.";
string word = "portal";
int res = countOccurrences(s, word);
cout << res << endl;
return 0;
}
Java
// Java program to count occurrences of a word
// using regex
import java.util.regex.*;
class GfG {
// Function to count occurrences of word in s
static int countOccurrences(String s, String word) {
int count = 0;
// Use regex matcher
Pattern pattern = Pattern.compile("\\b\\w+\\b");
Matcher matcher = pattern.matcher(s);
// Count matching words
while (matcher.find()) {
if (matcher.group().equals(word)) {
count++;
}
}
return count;
}
// Driver code
public static void main(String[] args) {
String s = "GeeksforGeeks A computer science portal for geeks.";
String word = "portal";
int res = countOccurrences(s, word);
System.out.println(res);
}
}
Python
# Python program to count occurrences of a word
# using regex
import re
def countOccurrences(s, word):
count = 0
# Use finditer to iterate over matches
for match in re.finditer(r'\b\w+\b', s):
if match.group() == word:
count += 1
return count
# Driver Code
if __name__ == "__main__":
s = "GeeksforGeeks A computer science portal for geeks."
word = "portal"
res = countOccurrences(s, word)
print(res)
C#
// C# program to count occurrences of a word
// using regex
using System;
using System.Text.RegularExpressions;
class GfG {
// Function to count occurrences of word in s
public static int countOccurrences(string s, string word) {
int count = 0;
// Use regex to find matches
MatchCollection matches = Regex.Matches(s, @"\b\w+\b");
// Count matching words
foreach (Match match in matches) {
if (match.Value == word) {
count++;
}
}
return count;
}
// Driver code
public static void Main() {
string s = "GeeksforGeeks A computer science portal for geeks.";
string word = "portal";
int res = countOccurrences(s, word);
Console.WriteLine(res);
}
}
JavaScript
// JavaScript program to count occurrences of a word
// using regex
function countOccurrences(s, word) {
let count = 0;
// Use matchAll to iterate over words
const regex = /\b\w+\b/g;
const matches = s.matchAll(regex);
for (const match of matches) {
if (match[0] === word) {
count++;
}
}
return count;
}
// Driver Code
let s = "GeeksforGeeks A computer science portal for geeks.";
let word = "portal";
let res = countOccurrences(s, word);
console.log(res);
Similar Reads
Count words present in a string Given an array of words and a string, we need to count all words that are present in given string. Examples: Input : words[] = { "welcome", "to", "geeks", "portal"} str = "geeksforgeeks is a computer science portal for geeks." Output : 2 Two words "portal" and "geeks" is present in str. Input : word
6 min read
Count Occurrences of a Given Character in a String Given a string S and a character 'c', the task is to count the occurrence of the given character in the string.Examples: Input : S = "geeksforgeeks" and c = 'e'Output : 4Explanation: 'e' appears four times in str.Input : S = "abccdefgaa" and c = 'a' Output : 3Explanation: 'a' appears three times in
6 min read
Count words in a given string Given a string, count the number of words in it. The words are separated by the following characters: space (' ') or new line ('\n') or tab ('\t') or a combination of these. Recommended PracticeCount number of wordsTry It!Method 1: The idea is to maintain two states: IN and OUT. The state OUT indica
15+ min read
Count occurrences of strings formed using words in another string Given a string A and a vector of strings B, the task is to count the number of strings in vector B that only contains the words from A. Examples: Input: A="blue green red yellow"B[]={"blue red", "green pink", "yellow green"}Output: 2 Input: A="apple banana pear"B[]={"apple", "banana apple", "pear ba
7 min read
Count occurrences of a word in string | Set 2 (Using Regular Expressions) Given a string str and a word w, the task is to print the number of the occurrence of the given word in the string str using Regular Expression. Examples: Input: str = "peter parker picked a peck of pickled peppersâ, w = "peck"Output: 1Explanation: There is only one occurrence of the word "peck" in
4 min read