c++ سی پلاس پلاس

سورس اعتبار سنجی نام کاربری در c++

سوال: شما قرار است برای نوشتن یک پایگاه اینترنتی کمک کنید. بخشی از این پایگاه مربوط به ثبت نام کاربران جدید است که باید یک نام کاربری مجاز وارد شود.
یک نام کاربری مجاز، یک دنباله از حروف a تا z و ارقام 1 تا 9 است که حرف اولش رقم نیست و قسمت عددی آن حداکثر 3 رقم دارد و درانتهای دنباله است.
مثلا test123 و minaaa نامهای کاربری مجاز هستند. اما هریک از test1234 و 12hello و 1abc2d و abc2d نامهای غیر مجاز هستند.
در این مسئله شما باید یک نام کاربری را از ورودی گرفته و مجاز یا غیر مجاز بودن آن را مشخص کنید.

راهنمایی :
کد اسکی 0= 48 کد اسکی a=97
کد اسکی 1= 49 کد اسکی b=98
کد اسکی 9= 57 کد اسکی z=122

#include<iostream>
#include &lt;string&gt;
using namespace std;
int main()
{
    cout &lt;&lt; "enter username:";
    string s;
    cin&gt;&gt;s;
    int n=s.length();
    int f1=0;
    int f2=1;
    for(int i=0;i&lt;n-3;i++)
    {
        int asc=(int)s[i];
        if(asc&lt;=97 || asc&gt;=122)
        {
            f1=1;
            break;
        }
    }
    int a=(int)s[n-3];
    int b=(int)s[n-2];
    int c=(int)s[n-1];
    if( (a&gt;=97 &amp;&amp; a&lt;=122) &amp;&amp; (b&gt;=97 &amp;&amp; b&lt;=122) &amp;&amp; (c&gt;=97 &amp;&amp; c&lt;=122) )
        f2=0;
    if( (a&gt;=97 &amp;&amp; a&lt;=122) &amp;&amp; (b&gt;=97 &amp;&amp; b&lt;=122) &amp;&amp; (c&gt;=49 &amp;&amp; c&lt;=57) )
        f2=0;
    if( (a&gt;=97 &amp;&amp; a&lt;=122) &amp;&amp; (b&gt;=49 &amp;&amp; b&lt;=57) &amp;&amp; (c&gt;=49 &amp;&amp; c&lt;=57) )
        f2=0;
    if( (a&gt;=49 &amp;&amp; a&lt;=57) &amp;&amp; (b&gt;=49 &amp;&amp; b&lt;=57) &amp;&amp; (c&gt;=49 &amp;&amp; c&lt;=57) )
        f2=0;
    if(f1==0 &amp;&amp; f2==0)
        cout&lt;&lt;"Motabar";
    else
        cout&lt;&lt;"Namotabar";
    return 0;
}
enter username:mrmoein123
Motabar
Process finished with exit code 0

 

نظر خود را بگویید

آدرس ایمیل شما منتشر نخواهد شد. قسمت های مورد نیاز علامت گذاری شده است *