【问题标题】:Checking the ASCII value of different characters检查不同字符的 ASCII 值
【发布时间】:2019-07-17 10:50:27
【问题描述】:

我需要制作一个程序来获取随机字符并检查他的 ASCII 值 (int)。

例如:

Console.WriteLine("Please enter your first character");

char num1 = int.char(Console.ReadLine());

if((character) >= 65 && (character) <= 90 && (character) >= 97 && (character) <= 122)
{
    letters += 1;
}

这个程序检查值就像它是一个数字,如果我输入字母 F 例如它不会将 1 添加到字母计数器。

【问题讨论】:

  • 你有什么问题?
  • 也许 if((字符 >= 65 && 字符 = 97 && 字符
  • @JesperMygind 我试着做字符
  • 好吧,我从来没有从你提出的问题中猜到这一点。简单提示:不要逐字符读取密码,只需读取整个密码并对整个密码进行验证。
  • 正如其他人指出的那样,除了您的 if 语句错误之外,(character) 是什么?您正在为 num1 分配一个值,然后您正在检查一个完全不同的变量。

标签: c# if-statement char ascii counter


【解决方案1】:

试试这个

Console.WriteLine("Please enter your first character");
char num1 = int.char(Console.ReadLine());
if(((character) >= 65 && (character) <= 90) || ((character) >= 97 && (character) <= 122))
{
    letters += 1;
}

你在 AND-OR 逻辑中犯了一个小错误。

【讨论】:

    【解决方案2】:

    你可以试试下面的代码;

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApp1
    {
        class Program
        {
        static void Main(string[] args)
        {
            Console.WriteLine("Please enter how many characters your password will have");
            int num1 = int.Parse(Console.ReadLine());
            int letters = 0;
            int numbers = 0;
            for (int i = 0; i < num1; i++)
            {
                Console.WriteLine("Please enter the character");
                char character = char.Parse(Console.ReadLine());
                if (character >= 'A' && character <= 'Z' || character >= 'a' && character <= 'z')
                {
                    letters += 1;
                }
                if(character >= '0' && (int)character <= '9')
                {
                    numbers += 1;
                }
                if (character <= 'A' && character >= 'Z' || character <= 'a' && character >= 'z' || character <= '0' && (int)character >= '9')
                {
                    Console.WriteLine("you have entered invalid character");
                }
            }
            if(letters >= numbers)
            {
                Console.WriteLine("The password has " + num1 + " characters and its legal");
            }
            else
            {
                Console.WriteLine("The password has " + num1 + " characters and it is illegal");
            }
            Console.ReadLine();
        }
    }
    }
    

    【讨论】:

    • 答案⬆️⬆️⬆️
    • 您对ReadLine() 的使用会有问题。如果他们输入多个字符怎么办?...
    • 如果您想一次读取一个字母/键,请使用 Console.ReadKey 而不是 Console.ReadLine。也使用int.TryParse 而不是int.Parse
    • 很高兴你回答你自己的问题,但这个答案实际上并没有回答这个问题。就目前而言,您的“问题”读起来就像一个谜语,给出程序的一些小的随机部分,然后您提供完整的程序作为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    相关资源
    最近更新 更多