PDA

View Full Version : مبتدی: جدا کردن حروف و اعداد



Wayne Rooney
شنبه 23 آبان 1388, 17:25 عصر
سلام ، خسته نباشید ،


آقا من می خوام یه برنامه بنویسم که یه رشته 10 تایی از کاربر بگیره و بگه کدوما عدد و کدوما حرف هستند ...



من خودم این برنامه رو نوشتم ، ولی جواب درست تحویلم نمیده ! اگه بگید اشکالش کجاست یا حداقل یه راهنمایی کنید ، ممنون میشم ...







#include <iostream>
#include <conio.h>
using namespace std;
int main ()
{
char string[10] ;
int i , j ;
cout << " Enter Your String With 10 Charachter : " ;
i = 0 ;
while ( i <= 9 )
{
cin >> string[i] ;
i++ ;
if ( i == 10 )
continue ;
}
for ( j = 0 ; j <= 9 ; j++ )
{
if ( string[j] == 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 )
{
cout << " Numbers = " << string[j] << endl ;
}
else
{
cout << " Charachters = " << string[j] << endl ;
}
}
getch() ;
return 0 ;
}

tdkhakpur
شنبه 23 آبان 1388, 18:37 عصر
#include <iostream>
#include <conio.h>
using namespace std;
int main ()
{
char string[10] ;
int i , j ;
cout << " Enter Your String With 10 Charachter : " ;
i = 0 ;
while ( i <= 9 )
{
cin >> string[i] ;
i++ ;
if ( i == 10 )
continue ;
}
for ( j = 0 ; j <= 9 ; j++ )
{
if ( string[j] == '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '0' ) // كوتيشن نزاشتي
{
cout << " Numbers = " << string[j] << endl ;
}
else
{
cout << " Charachters = " << string[j] << endl ;
}
}
getch() ;
return 0 ;
}

Wayne Rooney
شنبه 23 آبان 1388, 18:56 عصر
#include <iostream>
#include <conio.h>
using namespace std;
int main ()
{
char string[10] ;
int i , j ;
cout << " Enter Your String With 10 Charachter : " ;
i = 0 ;
while ( i <= 9 )
{
cin >> string[i] ;
i++ ;
if ( i == 10 )
continue ;
}
for ( j = 0 ; j <= 9 ; j++ )
{
if ( string[j] == '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '0' ) // كوتيشن نزاشتي
{
cout << " Numbers = " << string[j] << endl ;
}
else
{
cout << " Charachters = " << string[j] << endl ;
}
}
getch() ;
return 0 ;
}


ممنون زیاد ...

مشکل number بودنش حل شد ولی در قسمت else قاعدتا باید حروف رو چاپ کنه چون حروف برابر با 1 یا 2 یا .. نیستن ، ولی اینکارو نمی کنه و همه رو نامبر چاپ می کنه !

tdkhakpur
شنبه 23 آبان 1388, 19:06 عصر
با عرض پوزش يه كمي دقت نكردم خط زير را عوض كن.


if ( string[j] == '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '0' ) // كوتيشن نزاشتي
تعويض به
if ( string[j] >= '0' && string[j] <= '9' ) // كوتيشن نزاشتي

m.soleimani
شنبه 23 آبان 1388, 19:13 عصر
ممنون زیاد ...

مشکل number بودنش حل شد ولی در قسمت else قاعدتا باید حروف رو چاپ کنه چون حروف برابر با 1 یا 2 یا .. نیستن ، ولی اینکارو نمی کنه و همه رو نامبر چاپ می کنه !
با استفاده از کدهای اسکی و چک کردن این که مقدار مورد نظر شما از حروف هست یا نه مشکل شما حل می‌شه در حال حاضر من به این شماره‌ها دسترسی ندارم ولی در پایان هر کتاب برنامه نویسی این کدها مشخص شدن که به راحتی می‌شه با اون‌ها برنامت را کوتاه‌تر و خواناتر کنی موفق باشی

Salar Ashgi
یک شنبه 24 آبان 1388, 12:37 عصر
همانطور که دوستمون ذکر کردن با کد اسکی این کارها رو براحتی میشه انجام داد :

توسط دو تابع :



bool is_digit(char c){
int f = (int)(c);
if(f>=48 && f<=57)
return true;
else
return false;
}
===============
bool is_letter(char c){
int f = (int)(c);
if((f>=65 && f<=90) || (f>=97 && f<=122))
return true;
else
return false;
}


موفق باشید .

Wayne Rooney
یک شنبه 24 آبان 1388, 17:46 عصر
مرسی ... خیلی ممنون ...
این کدهای اسکی هم خیلی راحت جواب داد ... واقعا سپاس ...