Cách kiểm tra xem một số có chứa một chữ số nhất định trong C++

Ai đó có thể cho tôi một gợi ý về cách viết mã để tìm hiểu xem số 0000 đến 9999 đã nhập có chứa chữ số 1, 2 hay 3 không?

cout << "Nhập số mong muốn. ";
cin >> số;

nếu (số < 0. số > 9999)
cout << "Số nhập không hợp lệ, vui lòng nhập lại số từ 0 đến 9999" << endl;

else
{
answer = number % 3;
if (answer >= 1 && answer
cout << "Entered number, " << number << " contains the digit 1, digit 2 or digit 3" << endl;
else
cout << "Entered number, " << number << " does not contain the digit 1, digit 2 or digit 3" << endl;
}

Tại sao không chuyển đổi số thành một chuỗi và sau đó chỉ cần tìm kiếm các ký tự mà bạn quan tâm?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include 

int main()
{
    int number = 3875 ; // for example (non-negative)

    std::cout << "the number " << number << " contains the digits " ;

    while( number != 0 ) // repeat till we have nothing left
    {
        const int last_digit = number % 10 ; // 3875%10 yields 5
        std::cout << last_digit << ' ' ; // print out the digit

        number /= 10 ; // dividing by 10 throws away the last digit
                       // 3875/10 == 387; last digit of 387 is 387%10 == 7
                       // 387/10 == 38; last digit of 38 is 38%10 == 8 etc.
    }

    std::cout << " (in reverse order)\n" ;
}

Đây là cách đơn giản nhất để làm điều này

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include 

int main()
{
	int num;
	do
	{
		std::cout << "Enter number (0 to 9999): ";
		std::cin >> num;
	} while (num < 0 || num > 9999);
	
	int o, t, h, th;
	
	//to get all the digits separately
	o = num / 1 % 10;          //ones
	t = num / 10 % 10;	   //tens
	h = num / 100 % 10;    //hundreds
	th = num / 1000 % 10;  //thousands
	
	if (o == 1 || o == 2 || o == 3 || t == 1 || t == 2 || t == 3 ||
		h == 1 || h == 2 || h == 3 || th == 1 || th == 2 || th == 3)
	{
		std::cout << "Entered number, " << num << ", contains the digit 1, 2 or 3." << std::endl;
	}
	else
	{
		std::cout << "Entered number, " << num << ", does not contain the digit 1, 2 or 3." << std::endl;
	}
	return 0;
}

Đã lưu trữ chủ đề. Không cho phép trả lời mới

Viết phương thức kiểm tra xem số đã cho (số nguyên dương) có chứa chữ số 3 không. Không chuyển đổi số sang loại khác. Không sử dụng các chức năng tích hợp sẵn như Chứa(), StartsWith(), v.v.

Đầu vào và đầu ra dự kiến

IfNumberContains3(7201432) → true IfNumberContains3(87501) → false

using System;

namespace CSharpExercises.Exercises.Conditional_statements
{
    class IfNumberContains3Task
    {
        public static bool IfNumberContains3(int number)
        {
            while (number > 0)
            {
                if (number % 10 == 3)
                {
                    return true;
                }

                number /= 10;
            }

            return false;
        }

        public static void Main()
        {
            Console.WriteLine(IfNumberContains3(5384562)); // true
            Console.WriteLine(IfNumberContains3(0));       // false
            Console.WriteLine(IfNumberContains3(390462));  // true
        }
    }
}

Chủ đề này sẽ thảo luận về hàm isdigit() trong ngôn ngữ C. Hàm isdigit() là một hàm định sẵn của thư viện C, dùng để kiểm tra ký tự có phải là ký tự số từ 0 đến 9 hay không. Và nếu ký tự đã cho là một số hoặc chữ số, nó sẽ trả về một giá trị Boolean thực hoặc khác không; . Hàm isdigit được khai báo bên trong ctype. h, vì vậy chúng ta phải thêm vào chương trình C

Ví dụ: giả sử chúng ta nhập ký tự 'h' vào hàm isdigit(); . Ở đây ký tự không phải là một chữ số. Vì vậy, hàm isdigit() trả về số không (0) hoặc giá trị sai. Tương tự, chúng ta lại nhập ký tự số '5' vào hàm isdigit(). Lần này, hàm trả về giá trị true hoặc khác 0 vì '5' là ký tự số từ 0 đến 9 chữ số

Cú pháp hàm isdigit()

Sau đây là cú pháp của hàm isdigit() trong ngôn ngữ C

Thông số

Ch - Nó xác định ký tự số được truyền trong hàm isdigit()

Giá trị trả về

Hàm isdigit() kiểm tra đối số 'ch' và nếu ký tự được truyền là một chữ số, hàm này sẽ trả về một giá trị khác 0. Mặt khác, nó hiển thị giá trị Boolean bằng 0 hoặc sai

ví dụ 1. Chương trình kiểm tra xem ký tự đã cho có phải là chữ số hay không

Hãy tạo chương trình kiểm tra các ký tự đã cho có phải là chữ số hay không bằng cách sử dụng hàm isdigit() trong lập trình C

đầu ra

The given character 'P' is not a digit.
The given character '3' is a digit.
The given character '!' is not a digit.
The given character '$4' is not a digit.
The given character '0' is not a digit.

Trong chương trình trên, chúng tôi đã xác định các ký tự khác nhau như 'P', '3', '. ', '$4', 0 để kiểm tra xem đây có phải là các ký tự hợp lệ hay không sử dụng hàm isdigit(). Và sau đó, chúng ta sử dụng hàm isdigit() để kiểm tra và trả về các ký tự 'P', '1', $4 không phải là chữ số

ví dụ 2. Chương trình kiểm tra ký tự do người dùng nhập vào có phải là chữ số hay không

Hãy viết chương trình kiểm tra ký tự nhập vào có hợp lệ hay không bằng cách sử dụng hàm isdigit() trong C

đầu ra

Enter a number to check for valid digits: 5
It is a digit.

Trong chương trình trên, chúng tôi nhập ký tự '5' từ người dùng và sau đó sử dụng hàm isdigit để kiểm tra xem đối số được truyền có phải là một chữ số hay không. Ở đây, ký tự được truyền là một chữ số, vì vậy hàm isdigit() trả về câu lệnh "Đó là một chữ số. "

lần thực hiện thứ 2

Enter a number to check for valid digits: A
It is not a digit.

Tương tự, khi chúng ta nhập ký tự 'A' vào hàm isdigit(), hàm này sẽ kiểm tra ký tự hợp lệ và chúng ta có thể thấy ký tự 'A' không phải là một chữ số. Vì vậy, hàm trả về câu lệnh 'Đó không phải là một chữ số. '

ví dụ 3. Chương trình in các số 0 và khác 0 cho ký tự đã truyền trong C

Hãy viết chương trình để kiểm tra tất cả các ký tự đã cho và trả về các giá trị 0 và khác 0 dựa trên các ký tự được truyền vào hàm isdigit() trong C

đầu ra

________số 8

Trong chương trình trên, chúng tôi kiểm tra các ký tự chữ số đã cho hợp lệ bằng cách sử dụng hàm isdigit(). Hàm isdigit() trả về 1 cho các ký tự số và 0 cho các ký tự chữ cái hoặc ký hiệu đặc biệt được xác định trong chương trình không phải là chữ số

Ví dụ 4. Chương trình kiểm tra tất cả các phần tử của mảng bằng hàm isdigit()

Hãy viết chương trình tìm tất cả các chữ số hợp lệ của phần tử mảng bằng hàm isdigit() trong C

đầu ra

'E' is not a valid digit character.
'8' is a digit character.
'@' is not a valid digit character.
'-' is not a valid digit character.
'3' is a digit character.
'/' is not a valid digit character.
'7' is a digit character.
'$' is not a valid digit character.

Chúng ta đã khai báo và khởi tạo biến arr[] với một số phần tử trong chương trình trên. Và sau đó, chúng tôi tạo một mảng khác arr2[] chứa số không (0) để gán kết quả cho những phần tử không phải là chữ số hợp lệ. Hàm isdigit() kiểm tra tất cả các phần tử mảng arr[] và trả về các giá trị khác 0 cho các phần tử chữ số hợp lệ. Khác, nó trả về số không (0) cho các phần tử không phải chữ số