شما قرار است برای نوشتن یک پایگاه اینترنتی کمک کنید. بخشی از این پایگاه مربوط به ثب نام کاربران جدید است که باید یک نام کاربری مجاز وارد شود.
یک نام کاربری مجاز، یک دنباله از حروف a تا z و ارقام 1 تا 9 است که حرف اولش رقم نیست و قسمت عددی آن حداکثر 3 رقم دارد و درانتهای دنباله است.
مثلا test123 و aliiii نامهای کاربری مجاز هستند. اما هریک از test1234 و 12hello و 1abc2d و abc2d نامهای غیر مجاز هستند.
در این مسئله شما باید یک نام کاربری را از ورودی گرفته و مجاز یا غیر مجاز بودن آن را مشخص کنید.
#include <conio.h>
#include <iostream>
#include <string>
using namespace std;
main()
{
string s;
cin>>s;
int n=s.length();
int f1=0;
int f2=1;
for(int i=0;i<n-3;i++)
{
int asc=(int)s[i];
if(asc<=97 && asc>=122)
{
f1=1;
break;
}
}
int a=(int)s[n-3];
int b=(int)s[n-2];
int c=(int)s[n-1];
if( (a>=97 && a<=122) && (b>=97 && b<=122) && (c>=97 && c<=122) )
f2=0;
if( (a>=97 && a<=122) && (b>=97 && b<=122) && (c>=49 && c<=57) )
f2=0;
if( (a>=97 && a<=122) && (b>=49 && b<=57) && (c>=49 && c<=57) )
f2=0;
if( (a>=49 && a<=57) && (b>=49 && b<=57) && (c>=49 && c<=57) )
f2=0;
if(f1==0 && f2==0)
cout<<"Motabar";
else
cout<<"Namotabar";
getch();
}
راهنمای سوال :
کد اسکی عدد 0 = 48 عدد 1 = 49 عدد 9 = 57
کد اسکی حرف a = 97 b = 49 z = 122
برنامه ای بنویسید که یک رشته از ورودی بگیرد و چک کند که همه ی حروف آن بین حروف a تا z کوچک باشند، اگر این شرط برقرار بود عبارت معتبر و اگر این گونه نباشد عبارت نامعتبر را نمایش دهد.
با تشکر