Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C/C++ में इनपुट इंटीजर है या नहीं जांचना


स्ट्रिंग इनपुट को वैलिडेट करने के लिए कि क्या यह केवल अंकों (0-9) से बना है, प्रत्येक कैरेक्टर को isdigit() से जांचें।

C++ दृष्टिकोण (std::string)

#include <iostream>
#include <string>
#include <cctype>
using namespace std;

bool isNumeric(const string &str) {
    if (str.empty()) return false;
    for (char ch : str) {
        if (!isdigit(static_cast<unsigned char>(ch)))
            return false;
    }
    return true;
}

int main() {
    string str;
    cout << "Enter a string: ";
    cin >> str;
    
    if (isNumeric(str))
        cout << "This is a Number\n";
    else
        cout << "This is not a number\n";
    return 0;
}

आउटपुट

Enter a string: 5687
This is a Number

Enter a string: 584asS
This is not a number

C दृष्टिकोण (char ऐरे)

#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>

bool isNumeric(const char *str) {
    if (!str || *str == '\0') return false;
    while (*str) {
        if (!isdigit((unsigned char)*str))
            return false;
        str++;
    }
    return true;
}

int main() {
    char str[100];
    printf("Enter a string: ");
    scanf("%99s", str);
    
    if (isNumeric(str))
        printf("This is a Number\n");
    else
        printf("This is not a number\n");
    return 0;
}

उन्नत: चिह्न और ओवरफ्लो हैंडलिंग

// strtol के साथ पूर्ण इंटीजर पार्सिंग
#include <stdlib.h>
#include <errno.h>
#include <limits.h>

bool parseInt(const char *str, long *out) {
    char *endptr;
    errno = 0;
    long val = strtol(str, &endptr, 10);
    
    if (endptr == str || *endptr != '\0') return false;  // कोई अंक नहीं या अतिरिक्त कैरेक्टर्स
    if (errno == ERANGE) return false;  // ओवरफ्लो
    
    *out = val;
    return true;
}

मुख्य बिंदु

  • isdigit() के लिए <cctype> / <ctype.h> शामिल करें।
  • unsigned char कास्ट isdigit के लिए अनडिफाइंड बिहेवियर से बचाता है।
  • उत्पादन कोड के लिए strtol/strtoll अधिक मजबूत हैं।
  1. - C/C++ में कैसे जांचें कि स्ट्रिंग इंटीजर है?

    यह जांचने के कई तरीके हैं कि स्ट्रिंग इंटीजर है या नहीं और उनमें से एक तरीका isdigit() का उपयोग करके स्ट्रिंग की जांच करना है। उदाहरण #include <iostream> #include <string.h> using namespace std; int main() { char str[] = 3257fg; for (int i = 0; i < strlen(str); i++) {

  1. - C# का उपयोग करके जांचें कि स्ट्रिंग पालिंड्रोम है या नहीं?

    मान लें कि हमें यह पता लगाना है कि निम्न स्ट्रिंग पालिंड्रोम है या नहीं:str = Level;उसके लिए, प्रत्येक वर्ण की जांच करने के लिए स्ट्रिंग को वर्ण सरणी में बदलें:char[] ch = str.ToCharArray();अब रिवर्स ढूंढें:Array.Reverse(ch);रिवर्स मूल सरणी के बराबर है या नहीं यह पता लगाने के लिए Equals मेथड का उपयो

  1. - Python 3 में Raw Input Integer है या नहीं कैसे Check करें?

    Input Integer Check करना (Python 3) String Class में isdigit() नामक एक Method होता है जो True Return करता है यदि String में सभी Characters Digits हैं और कम से कम एक Character है, अन्यथा False। यहां तक कि यदि आप Float Input करते हैं, तो यह False Return करेगा। उदाहरण: isdigit() का उपयोग >>>