Программа для присвоения фамилий группам справка-

#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); , кажется, что она дает желаемый результат группировки на основе первой буквы фамилии.