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

C# में अंकों को शब्दों में बदलना

किसी संख्या के प्रत्येक अंक (डिजिट) को उसके अंग्रेजी शब्द प्रतिनिधित्व में बदलने के लिए हम सरणी/शब्दकोश का उपयोग करते हैं।

उदाहरण

using System;
using System.Collections.Generic;
using System.Text;

namespace Demo {
    class MyApplication {
        static void Main(string[] args) {
            int val = 4677;
            int next, num_digits = 0;
            int[] a = new int[10];

            // 0-9 के लिए शब्द
            string[] digits_words = {
                "zero", "one", "two", "three", "four",
                "five", "six", "seven", "eight", "nine"
            };

            Console.WriteLine("Number: " + val);
            Console.Write("Number (words): ");

            // अंकों को निकालें (उल्टे क्रम में)
            do {
                next = val % 10;
                a[num_digits] = next;
                num_digits++;
                val = val / 10;
            } while (val > 0);

            // सही क्रम में प्रिंट करें
            num_digits--;
            for (; num_digits >= 0; num_digits--) {
                Console.Write(digits_words[a[num_digits]] + " ");
            }
            Console.ReadLine();
        }
    }
}

आउटपुट

Number: 4677
Number (words): four six seven seven

बेहतर दृष्टिकोण: स्ट्रिंग रूपांतरण

string number = "4677";
string[] words = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };

string result = string.Join(" ", number.Select(c => words[c - '0']));
Console.WriteLine(result); // four six seven seven

पूर्ण संख्या को शब्दों में (भारतीय/पश्चिमी प्रणाली)

यदि पूरी संख्या को शब्दों में चाहिए (जैसे "four thousand six hundred seventy-seven"):

// इसके लिए अधिक जटिल एल्गोरिदम या लाइब्रेरी (Humanizer) की आवश्यकता होती है
// Humanizer लाइब्रेरी:
using Humanizer;
Console.WriteLine(4677.ToWords()); // "four thousand six hundred and seventy-seven"

मुख्य बिंदु

  • मूल दृष्टिकोण प्रत्येक अंक को अलग-अलग शब्द में बदलता है (डिजिट-बाय-डिजिट)।
  • पूर्ण संख्या शब्द रूपांतरण के लिए प्लेस वैल्यू (हजार, लाख, करोड़/मिलियन) हैंडलिंग चाहिए।
  • नकारात्मक संख्याओं के लिए "minus" प्रीफिक्स जोड़ें।
  • दशमलव संख्याओं के लिए "point" और फिर प्रत्येक अंक।

विस्तारित: दशमलव संख्या के लिए

public static string DigitsToWords(double number) {
    string[] words = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
    string str = number.ToString();
    var result = new List();

    foreach (char c in str) {
        if (c == '.') result.Add("point");
        else if (c == '-') result.Add("minus");
        else if (char.IsDigit(c)) result.Add(words[c - '0']);
    }
    return string.Join(" ", result);
}

// DigitsToWords(-46.77) → "minus four six point seven seven"
  1. - अंक को शब्दों में बदलने के लिए C प्रोग्राम

    मान लीजिए हमारे पास एक अंक d है, हमें इसे शब्दों में बदलना है। तो यदि d = 5, हमारा आउटपुट Five होना चाहिए। यदि हम कुछ d प्रदान करते हैं जो 0 और 9 की रेंज से बाहर है, तो यह उचित आउटपुट वापस करेगा।उदाहरण के लिए, यदि इनपुट d = 6 है, तो आउटपुट Six होगा।हल करने के चरणsolve() फंक्शन परिभाषित करें, जो d ले

  1. C प्रोग्राम: संख्या को शब्दों में बदलें C प्रोग्राम: संख्या को शब्दों में बदलें

    समस्या विवरण एक संख्यात्मक स्ट्रिंग (अधिकतम 4 अंक: 0-9999) दी गई है, इसे अंग्रेजी शब्दों में बदलें। उदाहरण इनपुटआउटपुट 1234one thousand two hundred thirty four 7777seven thousand seven hundred seventy seven 100one hundred 15fifteen स्थान मान प्रणाली संख्या: 1111 स्थान: हजार सौ दहाई इकाई

  1. - जावा प्रोग्राम: जांचें कि संख्या के सभी अंक उसे विभाजित करते हैं या नहीं

    उदाहरण 0) { int digit = val % 10; // बग: temp के बजाय val उपयोग कर रहा है if (!divisibilityCheck(val, digit)) return false; temp /= 10; } return true; } public static void main(String args[]) { int val