Home > Backend Development > C++ > C++ program to check if a string is a number

C++ program to check if a string is a number

WBOY
Release: 2023-08-27 12:53:12
forward
2704 people have browsed it

C++ program to check if a string is a number

Using strings or characters is very helpful when solving logic programming difficulties. Characters in a string are 1-byte data types that can store symbols in ASCII values. A string is a collection of characters. These symbols can be special characters, numbers from the number system, or letters from the English alphabet. This article will teach you how to use C to determine whether a character is a numeric character.

Check if the string is a number

To check if a given string is a number, we need to check if each character in it is a number. If any of the characters is a non-numeric character, the string is non-numeric, otherwise it is numeric. The algorithm is as follows -

algorithm

  • Read string s as input
  • For each character c in string s, perform the following operations
    • If c is a non-number, then
      • Return error
    • End if
  • Finish
  • return true

Example

#include <iostream>
#include <ctype.h>

using namespace std;
string solve( string s ) {
   for( int i = 0; i < s.length(); i++ ) {
      if( !isdigit( s[i] )) {
         return "False";
      }
   }
   return "True";
}

int main()
{
   cout << "Is "589" a numeric string? : " << solve( "589" ) << endl;
   cout << "Is "69a" a numeric string? : " << solve( "69a" ) << endl;
   cout << "Is "2979624" a numeric string? : " << solve( "2979624" ) << endl;
   cout << "Is "25\%4A" a numeric string? : " << solve( "25\%4A" ) << endl;
   cout << "Is "889" a numeric string? : " << solve( "889" ) << endl;
}
Copy after login

Output

Is "589" a numeric string? : True
Is "69a" a numeric string? : False
Is "2979624" a numeric string? : True
Is "25%4A" a numeric string? : False
Is "889" a numeric string? : True
Copy after login

This solution can check if the given string is a number, but will not return true when the input is a negative number. For negative numbers, special checks are required.

Check whether the string is negative or positive

To check if the given string is a number, we just need to check if each character is a number. But for negative numbers, the first character must be a "-" sign. So first check if the first character is negative, then check if the next character is a number, and if so, check if the remaining characters are numbers. The algorithm is as follows -

algorithm

  • Read string s as input
  • If the first character of s is '-' and the next character is a number, then
    • st = 1
  • otherwise
    • st=0
  • If it ends
  • For each character c in string s starting from index st, perform the following operations
    • If c is a non-number, then
      • Return error
    • If it ends
  • Finish
  • return true

Example

#include <iostream>
#include <ctype.h>

using namespace std;
string solve( string s ) {
   int start;
   if( s[0] == '-' && isdigit( s[1] ) ) {
      start = 1;
   }
   else {
      start = 0;
   }

   for( int i = start; i < s.length(); i++ ) {
      if( !isdigit( s[i] )) {
         return "False";
      }
   }
   return "True";
}

int main()
{
   cout << "Is "687" a numeric string? : " << solve( "687" ) << endl;
   cout << "Is "256l" a numeric string? : " << solve( "256l" ) << endl;
   cout << "Is "-5845" a numeric string? : " << solve( "-5845" ) << endl;
   cout << "Is "-89A2" a numeric string? : " << solve( "-89A2" ) << endl;
   cout << "Is "-256" a numeric string? : " << solve( "-256" ) << endl;
}
Copy after login

Output

Is "687" a numeric string? : True
Is "256l" a numeric string? : False
Is "-5845" a numeric string? : True
Is "-89A2" a numeric string? : False
Is "-256" a numeric string? : True
Copy after login

in conclusion

To check if the given string is a number, we need to check every character of it. A string is a number when all characters are numbers. In this article, we also use logic to check negative numbers. When the first character is a negative sign, then check if the next character is a number. If yes, then check the rest. This program can be extended to check floating point numbers. Now it only works for positive and negative integers.

The above is the detailed content of C++ program to check if a string is a number. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template