#c
#c
Вопрос:
итак, эта программа, которую я пишу, принимает имя и фамилию пользователя и, основываясь на инициале фамилии, помещает их в группу 1,2 или 3. Но моя программа основывает ее на инициале первого имени, и я не понимаю, почему это так, любая помощь будет оценена!
#include <iostream>
using namespace std;
int main()
{
string name="";
string letter="";
int finder=0;
cout << "Enter a first and last name:" << endl;
getline(cin, name); //gets user input
for(int count = 0; count<=10; ){
finder = name.find(" ",1);
letter = name.substr(finder,2);
if(letter>="A" amp;amp; letter <="I"){
cout << name << " is in group 1" <<endl;
return 0;
}
else if(letter>="J" amp;amp; letter <="S"){
cout << name << " is in group 2" <<endl;
return 0;
}
else if(letter>="T" amp;amp; letter <="Z"){
cout << name << " is in group 3" <<endl;
return 0;
}
}
return 0;
}
Ответ №1:
Ваша программа принимает два символа за букву — пробел перед буквой фамилии и первую букву фамилии.
Если вы измените строку на letter = name.substr(finder 1, 1);
, кажется, что она дает желаемый результат группировки на основе первой буквы фамилии.