السلام عليكم...
عندي مشكلة واتمنى المساعدة.. انا طبعاً الى الآن مبرمجة صغيرة وممكن مشكلتي تكون بسيطة ... لكن هي بالنسبة لي مشكلة حقيقية واتمنى من كل قلبي انكم تساعدوني...
مشكلتي في الكود اللي تحت في الدالة ال
check ..
انا اريده ان يتاكد ان المدخل من نوع
string
هذا الكود ينجح معي في حالة اذا كان المدخل صحيح يعني من نوع
string
اما اذا كان المدخل خطأ فالمفروض أن يدخل المستخدم اسم آخر وتتأكد الدالة مرة اخرى ان المدخل صحيح وبعد ذلك تطبع لي انا
مشكلتي انه ما يطبع لي مرة أخرى يعني اكيد فيه مشكلة في نفس الكود أنا حاولت لكن محاولاتي باءت بالفشل...
ولا أعلم هل استطعت ان اشرح ما اريد بالصورة الصحيحة؟؟
#include <iostream>
#include <string>
#include <ctype>
using namespace std;
string check( char a[] ){
string name;
int counter;
bool checkn;
char na[50];
for (int i=0; i<50; i++)
na=a;
do{
counter=0;
for (int i=0; na!='\0'; i++)
counter++;
for( int k=0; k<(counter-1); k++ ){
if(isalpha(na[k])!=0 || na[k]==' '){
checkn=true;
}
else{
cout<<endl<<"worng name enter another name";
cin.getline(na,50,'\0');
checkn=false;
}
}
} while(checkn==false);
cout<<endl;
name = na;
return name;
}
int main(){
char name[50];
cout<<"enter your name";
cin.getline(name,50,'\n');
string g;
g = check(name);
cout<<g;
return 0;
}
